# 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.](/content/docs/getting-started-with-the-api/index.html)

##### Contact

Twingate Support

[https://www.twingate.com/support](/content/support/index.html)

##### Terms of Service

[https://www.twingate.com/terms](/content/terms/index.html)

##### 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

## `accessRequest`

##### Description

Fetches a single Access Request by its ID.

##### Response

Returns an [`AccessRequest`](/content/docs/api#definition-AccessRequest/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Access Request's ID. |

#### Example

##### Query

```gql
query accessRequest($id: ID!) {
  accessRequest(id: $id) {
    reason
    requestedAt
    id
    user {
      ...UserFragment
    }
    resource {
      ...ResourceFragment
    }
    status
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{
  "data": {
    "accessRequest": {
      "reason": "example",
      "requestedAt": "2024-01-01T00:00:00.000Z",
      "id": "YWJjMTIzeHl6Nzg5",
      "user": User,
      "resource": Resource,
      "status": "PENDING"
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `accessRequests`

##### Description

Fetches a list of Access Requests.

##### Response

Returns an [`AccessRequestConnection!`](/content/docs/api#definition-AccessRequestConnection/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `before` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `after` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `first` \- [`Int`](/content/docs/api#definition-Int/index.html) |  |
| `last` \- [`Int`](/content/docs/api#definition-Int/index.html) |  |
| `filter` \- [`AccessRequestFilterInput`](/content/docs/api#definition-AccessRequestFilterInput/index.html) |  |

#### Example

##### Query

```gql
query accessRequests(
  $before: String,
  $after: String,
  $first: Int,
  $last: Int,
  $filter: AccessRequestFilterInput
) {
  accessRequests(
    before: $before,
    after: $after,
    first: $first,
    last: $last,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...AccessRequestEdgeFragment
    }
    totalCount
  }
}
```

##### Variables

```json
{
  "before": "YXJyYXljb25uZWN0aW9uOjQ=",
  "after": "YXJyYXljb25uZWN0aW9uOjk=",
  "first": 20,
  "last": 1,
  "filter": AccessRequestFilterInput
}
```

##### Response

```json
{
  "data": {
    "accessRequests": {
      "pageInfo": PageInfo,
      "edges": [AccessRequestEdge],
      "totalCount": 10
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `certificateAuthorities`

##### Description

Fetches a list of Certificate Authorities.

##### Response

Returns a [`CertificateAuthorityConnection!`](/content/docs/api#definition-CertificateAuthorityConnection/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `before` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `after` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `first` \- [`Int`](/content/docs/api#definition-Int/index.html) |  |
| `last` \- [`Int`](/content/docs/api#definition-Int/index.html) |  |

#### Example

##### Query

```gql
query certificateAuthorities(
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  certificateAuthorities(
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...CertificateAuthorityEdgeFragment
    }
    totalCount
  }
}
```

##### Variables

```json
{
  "before": "YXJyYXljb25uZWN0aW9uOjQ=",
  "after": "YXJyYXljb25uZWN0aW9uOjk=",
  "first": 20,
  "last": 1
}
```

##### Response

```json
{
  "data": {
    "certificateAuthorities": {
      "pageInfo": PageInfo,
      "edges": [CertificateAuthorityEdge],
      "totalCount": 10
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `certificateAuthority`

##### Description

Fetches a Certificate Authority by its ID.

##### Response

Returns a [`CertificateAuthority`](/content/docs/api#definition-CertificateAuthority/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Certificate Authority's ID. |

#### Example

##### Query

```gql
query certificateAuthority($id: ID!) {
  certificateAuthority(id: $id) {
    ... on X509CertificateAuthority {
      ...X509CertificateAuthorityFragment
    }
    ... on SSHCertificateAuthority {
      ...SSHCertificateAuthorityFragment
    }
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{
  "data": {
    "certificateAuthority": X509CertificateAuthority
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `connector`

##### Description

Fetches a single Connector by its ID.

##### Response

Returns a [`Connector`](/content/docs/api#definition-Connector/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Connector's ID. |

#### Example

##### Query

```gql
query connector($id: ID!) {
  connector(id: $id) {
    createdAt
    updatedAt
    lastHeartbeatAt
    hostname
    id
    name
    remoteNetwork {
      ...RemoteNetworkFragment
    }
    state
    hasStatusNotificationsEnabled
    version
    publicIP
    privateIPs
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{
  "data": {
    "connector": {
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-15T00:00:00.000Z",
      "lastHeartbeatAt": "2024-01-01T00:00:00.000Z",
      "hostname": "server.example.com",
      "id": "YWJjMTIzeHl6Nzg5",
      "name": "Example Name",
      "remoteNetwork": RemoteNetwork,
      "state": "ALIVE",
      "hasStatusNotificationsEnabled": true,
      "version": "1.0.0",
      "publicIP": "192.168.1.1",
      "privateIPs": ["192.168.1.1"]
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `connectors`

##### Description

Fetches a list of Connectors.

##### Response

Returns a [`ConnectorConnection!`](/content/docs/api#definition-ConnectorConnection/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `before` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `after` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `first` \- [`Int`](/content/docs/api#definition-Int/index.html) |  |
| `last` \- [`Int`](/content/docs/api#definition-Int/index.html) |  |
| `filter` \- [`ConnectorFilterInput`](/content/docs/api#definition-ConnectorFilterInput/index.html) |  |

#### Example

##### Query

```gql
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

```json
{
  "before": "YXJyYXljb25uZWN0aW9uOjQ=",
  "after": "YXJyYXljb25uZWN0aW9uOjk=",
  "first": 20,
  "last": 1,
  "filter": ConnectorFilterInput
}
```

##### Response

```json
{
  "data": {
    "connectors": {
      "pageInfo": PageInfo,
      "edges": [ConnectorEdge],
      "totalCount": 10
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `device`

##### Description

Look up a Device by its ID.

##### Response

Returns a [`Device`](/content/docs/api#definition-Device/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the Device. |

#### Example

##### Query

```gql
query device($id: ID!) {
  device(id: $id) {
    id
    name
    lastFailedLoginAt
    osVersion
    hardwareModel
    hostname
    username
    serialNumber
    user {
      ...UserFragment
    }
    lastConnectedAt
    osName
    deviceType
    activeState
    lastSuccessfulLoginAt
    isTrusted
    clientVersion
    manufacturerName
    internetSecurityConfiguration
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{
  "data": {
    "device": {
      "id": "YWJjMTIzeHl6Nzg5",
      "name": "Example Name",
      "lastFailedLoginAt": "2024-01-01T00:00:00.000Z",
      "osVersion": "1.0.0",
      "hardwareModel": "example",
      "hostname": "server.example.com",
      "username": "johndoe",
      "serialNumber": "example",
      "user": User,
      "lastConnectedAt": "2024-01-01T00:00:00.000Z",
      "osName": "IPADOS",
      "deviceType": "GENERIC",
      "activeState": "ACTIVE",
      "lastSuccessfulLoginAt": "2024-01-01T00:00:00.000Z",
      "isTrusted": true,
      "clientVersion": "1.0.0",
      "manufacturerName": "example",
      "internetSecurityConfiguration": "example"
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `devicePosture`

##### Description

Fetches the posture status of a Device by its ID.

##### Response

Returns a [`DevicePosture!`](/content/docs/api#definition-DevicePosture/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Device's ID. |

#### Example

##### Query

```gql
query devicePosture($id: ID!) {
  devicePosture(id: $id) {
    hardDriveEncryption {
      ...DevicePropertyPostureCheckFragment
    }
    screenLockPasscode {
      ...DevicePropertyPostureCheckFragment
    }
    firewall {
      ...DevicePropertyPostureCheckFragment
    }
    biometric {
      ...DevicePropertyPostureCheckFragment
    }
    antivirus {
      ...DevicePropertyPostureCheckFragment
    }
    osVersion {
      ...OsVersionPostureCheckFragment
    }
    crowdstrike {
      ...TrustProviderVerificationFragment
    }
    jamf {
      ...TrustProviderVerificationFragment
    }
    kandji {
      ...TrustProviderVerificationFragment
    }
    iru {
      ...TrustProviderVerificationFragment
    }
    inTune {
      ...TrustProviderVerificationFragment
    }
    sentinelOne {
      ...TrustProviderVerificationFragment
    }
    onePassword {
      ...TrustProviderVerificationFragment
    }
    manualVerification {
      ...ManualVerificationFragment
    }
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{
  "data": {
    "devicePosture": {
      "hardDriveEncryption": DevicePropertyPostureCheck,
      "screenLockPasscode": DevicePropertyPostureCheck,
      "firewall": DevicePropertyPostureCheck,
      "biometric": DevicePropertyPostureCheck,
      "antivirus": DevicePropertyPostureCheck,
      "osVersion": OsVersionPostureCheck,
      "crowdstrike": TrustProviderVerification,
      "jamf": TrustProviderVerification,
      "kandji": TrustProviderVerification,
      "iru": TrustProviderVerification,
      "inTune": TrustProviderVerification,
      "sentinelOne": TrustProviderVerification,
      "onePassword": TrustProviderVerification,
      "manualVerification": ManualVerification
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `devices`

##### Description

Fetches a list of Devices.

##### Response

Returns a [`DeviceConnection!`](/content/docs/api#definition-DeviceConnection/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `before` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `after` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `first` \- [`Int`](/content/docs/api#definition-Int/index.html) |  |
| `last` \- [`Int`](/content/docs/api#definition-Int/index.html) |  |
| `filter` \- [`DeviceFilterInput`](/content/docs/api#definition-DeviceFilterInput/index.html) |  |

#### Example

##### Query

```gql
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

```json
{
  "before": "YXJyYXljb25uZWN0aW9uOjQ=",
  "after": "YXJyYXljb25uZWN0aW9uOjk=",
  "first": 20,
  "last": 1,
  "filter": DeviceFilterInput
}
```

##### Response

```json
{
  "data": {
    "devices": {
      "pageInfo": PageInfo,
      "edges": [DeviceEdge],
      "totalCount": 10
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `dnsFilteringProfile`

##### Description

Return a DNS filtering profile. `None` is returned when DNS filtering is not enabled.

##### Response

Returns a [`DnsFilteringProfile`](/content/docs/api#definition-DnsFilteringProfile/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the DNS filtering profile. |

#### Example

##### Query

```gql
query dnsFilteringProfile($id: ID!) {
  dnsFilteringProfile(id: $id) {
    name
    id
    priority
    fallbackMethod
    groups {
      ...GroupConnectionFragment
    }
    allowedDomains
    deniedDomains
    contentCategoryConfig {
      ...ContentCategoryConfigFragment
    }
    securityCategoryConfig {
      ...SecurityCategoryConfigFragment
    }
    privacyCategoryConfig {
      ...PrivacyCategoryConfigFragment
    }
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{
  "data": {
    "dnsFilteringProfile": {
      "name": "Example Name",
      "id": "YWJjMTIzeHl6Nzg5",
      "priority": 123.45,
      "fallbackMethod": "AUTO",
      "groups": GroupConnection,
      "allowedDomains": ["example.com"],
      "deniedDomains": ["example.com"],
      "contentCategoryConfig": ContentCategoryConfig,
      "securityCategoryConfig": SecurityCategoryConfig,
      "privacyCategoryConfig": PrivacyCategoryConfig
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `dnsFilteringProfiles`

##### Description

Return a list of DNS filtering profiles Metadata. `None` is returned when DNS filtering is not enabled.

##### Response

Returns [`[DnsFilteringProfileMetadata!]`](/content/docs/api#definition-DnsFilteringProfileMetadata/index.html)

#### Example

##### Query

```gql
query dnsFilteringProfiles {
  dnsFilteringProfiles {
    name
    id
    priority
  }
}
```

##### Response

```json
{
  "data": {
    "dnsFilteringProfiles": [\
      {"name": "Example Name", "id": "YWJjMTIzeHl6Nzg5", "priority": 123.45}\
    ]
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `eventsSyncOidcProviderUrl`

##### Description

The OIDC Identity Provider URL to register in Cloud provider for the current tenant.

##### Response

Returns a [`String!`](/content/docs/api#definition-String/index.html)

#### Example

##### Query

```gql
query eventsSyncOidcProviderUrl {
  eventsSyncOidcProviderUrl
}
```

##### Response

```json
{
  "data": {
    "eventsSyncOidcProviderUrl": "example"
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `gateway`

##### Description

Fetches a Gateway by its ID.

##### Response

Returns a [`Gateway`](/content/docs/api#definition-Gateway/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Gateway's ID. |

#### Example

##### Query

```gql
query gateway($id: ID!) {
  gateway(id: $id) {
    address
    id
    remoteNetwork {
      ...RemoteNetworkFragment
    }
    x509CA {
      ...X509CertificateAuthorityFragment
    }
    sshCA {
      ...SSHCertificateAuthorityFragment
    }
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{
  "data": {
    "gateway": {
      "address": "192.168.1.100",
      "id": "YWJjMTIzeHl6Nzg5",
      "remoteNetwork": RemoteNetwork,
      "x509CA": X509CertificateAuthority,
      "sshCA": SSHCertificateAuthority
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `gateways`

##### Description

Fetches a list of Gateways.

##### Response

Returns a [`GatewayConnection!`](/content/docs/api#definition-GatewayConnection/index.html)

##### Arguments

#### Example

##### Query

```gql
query gateways(
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  gateways(
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...GatewayEdgeFragment
    }
    totalCount
  }
}
```

##### Variables

```json
{
  "before": "YXJyYXljb25uZWN0aW9uOjQ=",
  "after": "YXJyYXljb25uZWN0aW9uOjk=",
  "first": 20,
  "last": 1
}
```

##### Response

```json
{
  "data": {
    "gateways": {
      "pageInfo": PageInfo,
      "edges": [GatewayEdge],
      "totalCount": 10
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `group`

##### Description

Fetches a Group by its ID.

##### Response

Returns a [`Group`](/content/docs/api#definition-Group/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Group's ID. |

#### Example

##### Query

```gql
query group($id: ID!) {
  group(id: $id) {
    id
    createdAt
    updatedAt
    name
    originId
    isActive
    type
    users {
      ...UserConnectionFragment
    }
    resources {
      ...ResourceConnectionFragment
    }
    securityPolicy {
      ...SecurityPolicyFragment
    }
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{
  "data": {
    "group": {
      "id": "YWJjMTIzeHl6Nzg5",
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-15T00:00:00.000Z",
      "name": "Example Name",
      "originId": "example",
      "isActive": true,
      "type": "MANUAL",
      "users": UserConnection,
      "resources": ResourceConnection,
      "securityPolicy": SecurityPolicy
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `groups`

##### Description

Fetches a list of Groups.

##### Response

Returns a [`GroupConnection!`](/content/docs/api#definition-GroupConnection/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `before` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `after` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `first` \- [`Int`](/content/docs/api#definition-Int/index.html) |  |
| `last` \- [`Int`](/content/docs/api#definition-Int/index.html) |  |
| `filter` \- [`GroupFilterInput`](/content/docs/api#definition-GroupFilterInput/index.html) |  |

#### Example

##### Query

```gql
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

```json
{
  "before": "YXJyYXljb25uZWN0aW9uOjQ=",
  "after": "YXJyYXljb25uZWN0aW9uOjk=",
  "first": 20,
  "last": 1,
  "filter": GroupFilterInput
}
```

##### Response

```json
{
  "data": {
    "groups": {
      "pageInfo": PageInfo,
      "edges": [GroupEdge],
      "totalCount": 10
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `remoteNetwork`

##### Description

Fetches a single Remote Network by ID or name.

##### Response

Returns a [`RemoteNetwork`](/content/docs/api#definition-RemoteNetwork/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID`](/content/docs/api#definition-ID/index.html) | The Remote Network's ID. Default = `null` |
| `name` \- [`String`](/content/docs/api#definition-String/index.html) | The Remote Network's name. Default = `null` |

#### Example

##### Query

```gql
query remoteNetwork(
  $id: ID,
  $name: String
) {
  remoteNetwork(
    id: $id,
    name: $name
  ) {
    createdAt
    updatedAt
    name
    id
    networkType
    location
    isActive
    resources {
      ...ResourceConnectionFragment
    }
    connectors {
      ...ConnectorConnectionFragment
    }
    gateways {
      ...GatewayConnectionFragment
    }
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5", "name": "Example Name"}
```

##### Response

```json
{
  "data": {
    "remoteNetwork": {
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-15T00:00:00.000Z",
      "name": "Example Name",
      "id": "YWJjMTIzeHl6Nzg5",
      "networkType": "REGULAR",
      "location": "AWS",
      "isActive": true,
      "resources": ResourceConnection,
      "connectors": ConnectorConnection,
      "gateways": GatewayConnection
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `remoteNetworks`

##### Description

Fetches a list of Remote Networks.

##### Response

Returns a [`RemoteNetworkConnection!`](/content/docs/api#definition-RemoteNetworkConnection/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `before` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `after` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `first` \- [`Int`](/content/docs/api#definition-Int/index.html) |  |
| `last` \- [`Int`](/content/docs/api#definition-Int/index.html) |  |
| `filter` \- [`RemoteNetworkFilterInput`](/content/docs/api#definition-RemoteNetworkFilterInput/index.html) |  |

#### Example

##### Query

```gql
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

```json
{
  "before": "YXJyYXljb25uZWN0aW9uOjQ=",
  "after": "YXJyYXljb25uZWN0aW9uOjk=",
  "first": 20,
  "last": 1,
  "filter": RemoteNetworkFilterInput
}
```

##### Response

```json
{
  "data": {
    "remoteNetworks": {
      "pageInfo": PageInfo,
      "edges": [RemoteNetworkEdge],
      "totalCount": 10
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `resource`

##### Description

Fetch a single Resource by its ID.

##### Response

Returns a [`Resource`](/content/docs/api#definition-Resource/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Resource's ID. |

#### Example

##### Query

```gql
query resource($id: ID!) {
  resource(id: $id) {
    id
    createdAt
    updatedAt
    name
    tags {
      ...TagFragment
    }
    address {
      ...ResourceAddressFragment
    }
    alias
    protocols {
      ...ResourceProtocolsFragment
    }
    isActive
    remoteNetwork {
      ...RemoteNetworkFragment
    }
    groups {
      ...GroupConnectionFragment
    }
    serviceAccounts {
      ...ServiceAccountConnectionFragment
    }
    access {
      ...AccessConnectionFragment
    }
    isVisible
    isBrowserShortcutEnabled
    securityPolicy {
      ...SecurityPolicyFragment
    }
    usageBasedAutolockDurationDays
    accessPolicy {
      ...AccessPolicyFragment
    }
    approvalMode
    approverGroups {
      ...GroupConnectionFragment
    }
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{
  "data": {
    "resource": {
      "id": "YWJjMTIzeHl6Nzg5",
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-15T00:00:00.000Z",
      "name": "Example Name",
      "tags": [Tag],
      "address": ResourceAddress,
      "alias": "example",
      "protocols": ResourceProtocols,
      "isActive": true,
      "remoteNetwork": RemoteNetwork,
      "groups": GroupConnection,
      "serviceAccounts": ServiceAccountConnection,
      "access": AccessConnection,
      "isVisible": true,
      "isBrowserShortcutEnabled": true,
      "securityPolicy": SecurityPolicy,
      "usageBasedAutolockDurationDays": 12345,
      "accessPolicy": AccessPolicy,
      "approvalMode": "MANUAL",
      "approverGroups": GroupConnection
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `resources`

##### Description

Fetches a list of Resources.

##### Response

Returns a [`ResourceConnection!`](/content/docs/api#definition-ResourceConnection/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `before` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `after` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `first` \- [`Int`](/content/docs/api#definition-Int/index.html) |  |
| `last` \- [`Int`](/content/docs/api#definition-Int/index.html) |  |
| `filter` \- [`ResourceFilterInput`](/content/docs/api#definition-ResourceFilterInput/index.html) |  |

#### Example

##### Query

```gql
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

```json
{
  "before": "YXJyYXljb25uZWN0aW9uOjQ=",
  "after": "YXJyYXljb25uZWN0aW9uOjk=",
  "first": 20,
  "last": 1,
  "filter": ResourceFilterInput
}
```

##### Response

```json
{
  "data": {
    "resources": {
      "pageInfo": PageInfo,
      "edges": [ResourceEdge],
      "totalCount": 10
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `securityPolicies`

##### Description

Fetches a list of Security Policies.

##### Response

Returns a [`SecurityPolicyConnection!`](/content/docs/api#definition-SecurityPolicyConnection/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `before` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `after` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `first` \- [`Int`](/content/docs/api#definition-Int/index.html) |  |
| `last` \- [`Int`](/content/docs/api#definition-Int/index.html) |  |
| `filter` \- [`SecurityPolicyFilterField`](/content/docs/api#definition-SecurityPolicyFilterField/index.html) |  |

#### Example

##### Query

```gql
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

```json
{
  "before": "YXJyYXljb25uZWN0aW9uOjQ=",
  "after": "YXJyYXljb25uZWN0aW9uOjk=",
  "first": 20,
  "last": 1,
  "filter": SecurityPolicyFilterField
}
```

##### Response

```json
{
  "data": {
    "securityPolicies": {
      "pageInfo": PageInfo,
      "edges": [SecurityPolicyEdge],
      "totalCount": 10
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `securityPolicy`

##### Description

Fetches a single Security Policy by its ID or name.

##### Response

Returns a [`SecurityPolicy`](/content/docs/api#definition-SecurityPolicy/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID`](/content/docs/api#definition-ID/index.html) | The Security Policy's ID. Default = `null` |
| `name` \- [`String`](/content/docs/api#definition-String/index.html) | The Security Policy's name. Default = `null` |

#### Example

##### Query

```gql
query securityPolicy(
  $id: ID,
  $name: String
) {
  securityPolicy(
    id: $id,
    name: $name
  ) {
    id
    createdAt
    updatedAt
    name
    policyType
    groups {
      ...GroupConnectionFragment
    }
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5", "name": "Example Name"}
```

##### Response

```json
{
  "data": {
    "securityPolicy": {
      "id": "YWJjMTIzeHl6Nzg5",
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-15T00:00:00.000Z",
      "name": "Example Name",
      "policyType": "RESOURCE",
      "groups": GroupConnection
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `serialNumbers`

##### Description

List of serial numbers

##### Response

Returns a [`SerialNumberConnection!`](/content/docs/api#definition-SerialNumberConnection/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `before` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `after` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `first` \- [`Int`](/content/docs/api#definition-Int/index.html) |  |
| `last` \- [`Int`](/content/docs/api#definition-Int/index.html) |  |
| `filter` \- [`SerialNumberFilterInput`](/content/docs/api#definition-SerialNumberFilterInput/index.html) |  |

#### Example

##### Query

```gql
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

```json
{
  "before": "YXJyYXljb25uZWN0aW9uOjQ=",
  "after": "YXJyYXljb25uZWN0aW9uOjk=",
  "first": 20,
  "last": 1,
  "filter": SerialNumberFilterInput
}
```

##### Response

```json
{
  "data": {
    "serialNumbers": {
      "pageInfo": PageInfo,
      "edges": [SerialNumberEdge],
      "totalCount": 10
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `serviceAccount`

##### Description

Fetches a single Service Account by its ID.

##### Response

Returns a [`ServiceAccount`](/content/docs/api#definition-ServiceAccount/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Service Account's ID. |

#### Example

##### Query

```gql
query serviceAccount($id: ID!) {
  serviceAccount(id: $id) {
    id
    name
    createdAt
    updatedAt
    resources {
      ...ResourceConnectionFragment
    }
    keys {
      ...ServiceAccountKeyConnectionFragment
    }
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{
  "data": {
    "serviceAccount": {
      "id": "YWJjMTIzeHl6Nzg5",
      "name": "Example Name",
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-15T00:00:00.000Z",
      "resources": ResourceConnection,
      "keys": ServiceAccountKeyConnection
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `serviceAccountKey`

##### Description

Fetches a single Service Account Key by its ID.

##### Response

Returns a [`ServiceAccountKey`](/content/docs/api#definition-ServiceAccountKey/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID`](/content/docs/api#definition-ID/index.html) | The Service Account Key's ID. Default = `null` |
| `name` \- [`String`](/content/docs/api#definition-String/index.html) | The Service Account Key's name. Default = `null` |

#### Example

##### Query

```gql
query serviceAccountKey(
  $id: ID,
  $name: String
) {
  serviceAccountKey(
    id: $id,
    name: $name
  ) {
    createdAt
    id
    name
    expiresAt
    revokedAt
    updatedAt
    status
    serviceAccount {
      ...ServiceAccountFragment
    }
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5", "name": "Example Name"}
```

##### Response

```json
{
  "data": {
    "serviceAccountKey": {
      "createdAt": "2024-01-01T00:00:00.000Z",
      "id": "YWJjMTIzeHl6Nzg5",
      "name": "Example Name",
      "expiresAt": "2024-12-31T23:59:59.000Z",
      "revokedAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-15T00:00:00.000Z",
      "status": "ACTIVE",
      "serviceAccount": ServiceAccount
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `serviceAccounts`

##### Description

Fetches a list of Service Accounts.

##### Response

Returns a [`ServiceAccountConnection!`](/content/docs/api#definition-ServiceAccountConnection/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `before` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `after` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `first` \- [`Int`](/content/docs/api#definition-Int/index.html) |  |
| `last` \- [`Int`](/content/docs/api#definition-Int/index.html) |  |
| `filter` \- [`ServiceAccountFilterInput`](/content/docs/api#definition-ServiceAccountFilterInput/index.html) |  |

#### Example

##### Query

```gql
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

```json
{
  "before": "YXJyYXljb25uZWN0aW9uOjQ=",
  "after": "YXJyYXljb25uZWN0aW9uOjk=",
  "first": 20,
  "last": 1,
  "filter": ServiceAccountFilterInput
}
```

##### Response

```json
{
  "data": {
    "serviceAccounts": {
      "pageInfo": PageInfo,
      "edges": [ServiceAccountEdge],
      "totalCount": 10
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `user`

##### Description

Fetches a single User by its ID.

##### Response

Returns a [`User`](/content/docs/api#definition-User/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The User's ID. |

#### Example

##### Query

```gql
query user($id: ID!) {
  user(id: $id) {
    id
    createdAt
    updatedAt
    firstName
    lastName
    email
    avatarUrl
    state
    isAdmin
    role
    type
    groups {
      ...GroupConnectionFragment
    }
    devices {
      ...DeviceConnectionFragment
    }
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{
  "data": {
    "user": {
      "id": "YWJjMTIzeHl6Nzg5",
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-15T00:00:00.000Z",
      "firstName": "John",
      "lastName": "Doe",
      "email": "user@example.com",
      "avatarUrl": "example",
      "state": "PENDING",
      "isAdmin": false,
      "role": "ADMIN",
      "type": "MANUAL",
      "groups": GroupConnection,
      "devices": DeviceConnection
    }
  }
}
```

[Queries](/content/docs/api#group-Operations-Queries/index.html)

## `users`

##### Description

Fetches a list of Users.

##### Response

Returns a [`UserConnection!`](/content/docs/api#definition-UserConnection/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `before` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `after` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `first` \- [`Int`](/content/docs/api#definition-Int/index.html) |  |
| `last` \- [`Int`](/content/docs/api#definition-Int/index.html) |  |
| `filter` \- [`UserFilterInput`](/content/docs/api#definition-UserFilterInput/index.html) |  |

#### Example

##### Query

```gql
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

```json
{
  "before": "YXJyYXljb25uZWN0aW9uOjQ=",
  "after": "YXJyYXljb25uZWN0aW9uOjk=",
  "first": 20,
  "last": 1,
  "filter": UserFilterInput
}
```

##### Response

```json
{
  "data": {
    "users": {
      "pageInfo": PageInfo,
      "edges": [UserEdge],
      "totalCount": 10
    }
  }
}
```

# Mutations

## `accessRequestApprove`

##### Response

Returns an [`AccessRequestApproveMutation!`](/content/docs/api#definition-AccessRequestApproveMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Access Request's ID. |

#### Example

##### Query

```gql
mutation accessRequestApprove($id: ID!) {
  accessRequestApprove(id: $id) {
    ok
    error
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{"data": {"accessRequestApprove": {"ok": true, "error": "example"}}}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `accessRequestReject`

##### Response

Returns an [`AccessRequestRejectMutation!`](/content/docs/api#definition-AccessRequestRejectMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Access Request's ID. |

#### Example

##### Query

```gql
mutation accessRequestReject($id: ID!) {
  accessRequestReject(id: $id) {
    ok
    error
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{"data": {"accessRequestReject": {"ok": true, "error": "example"}}}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `connectorCreate`

##### Response

Returns a [`ConnectorCreateMutation!`](/content/docs/api#definition-ConnectorCreateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `hasStatusNotificationsEnabled` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether status notifications should be enabled for the Connector. Default = `true` |
| `name` \- [`String`](/content/docs/api#definition-String/index.html) | The Connector's name. Default = `null` |
| `remoteNetworkId` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the Connector's Remote Network. |

#### Example

##### Query

```gql
mutation connectorCreate(
  $hasStatusNotificationsEnabled: Boolean,
  $name: String,
  $remoteNetworkId: ID!
) {
  connectorCreate(
    hasStatusNotificationsEnabled: $hasStatusNotificationsEnabled,
    name: $name,
    remoteNetworkId: $remoteNetworkId
  ) {
    ok
    error
    entity {
      ...ConnectorFragment
    }
  }
}
```

##### Variables

```json
{
  "hasStatusNotificationsEnabled": true,
  "name": "Example Name",
  "remoteNetworkId": "TmV0d29yazox"
}
```

##### Response

```json
{
  "data": {
    "connectorCreate": {
      "ok": true,
      "error": "example",
      "entity": Connector
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `connectorDelete`

##### Response

Returns a [`ConnectorDeleteMutation!`](/content/docs/api#definition-ConnectorDeleteMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the entity to delete. |

#### Example

##### Query

```gql
mutation connectorDelete($id: ID!) {
  connectorDelete(id: $id) {
    ok
    error
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{"data": {"connectorDelete": {"ok": true, "error": "example"}}}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `connectorGenerateTokens`

##### Response

Returns a [`ConnectorGenerateTokensMutation!`](/content/docs/api#definition-ConnectorGenerateTokensMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `connectorId` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the Connector to generate tokens for. |

#### Example

##### Query

```gql
mutation connectorGenerateTokens($connectorId: ID!) {
  connectorGenerateTokens(connectorId: $connectorId) {
    ok
    error
    connectorTokens {
      ...ConnectorTokensFragment
    }
  }
}
```

##### Variables

```json
{"connectorId": "Q29ubmVjdG9yOjE"}
```

##### Response

```json
{
  "data": {
    "connectorGenerateTokens": {
      "ok": true,
      "error": "example",
      "connectorTokens": ConnectorTokens
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `connectorUpdate`

##### Response

Returns a [`ConnectorUpdateMutation!`](/content/docs/api#definition-ConnectorUpdateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `hasStatusNotificationsEnabled` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether status notifications should be enabled for the Connector. Default = `null` |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Connector's ID. |
| `name` \- [`String`](/content/docs/api#definition-String/index.html) | The Connector's name. Default = `null` |

#### Example

##### Query

```gql
mutation connectorUpdate(
  $hasStatusNotificationsEnabled: Boolean,
  $id: ID!,
  $name: String
) {
  connectorUpdate(
    hasStatusNotificationsEnabled: $hasStatusNotificationsEnabled,
    id: $id,
    name: $name
  ) {
    ok
    error
    entity {
      ...ConnectorFragment
    }
  }
}
```

##### Variables

```json
{
  "hasStatusNotificationsEnabled": true,
  "id": "YWJjMTIzeHl6Nzg5",
  "name": "Example Name"
}
```

##### Response

```json
{
  "data": {
    "connectorUpdate": {
      "ok": true,
      "error": "example",
      "entity": Connector
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `deviceArchive`

##### Response

Returns a [`DeviceArchiveMutation!`](/content/docs/api#definition-DeviceArchiveMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Device's ID. |

#### Example

##### Query

```gql
mutation deviceArchive($id: ID!) {
  deviceArchive(id: $id) {
    ok
    error
    entity {
      ...DeviceFragment
    }
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{
  "data": {
    "deviceArchive": {
      "ok": true,
      "error": "example",
      "entity": Device
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `deviceBlock`

##### Response

Returns a [`DeviceBlockMutation!`](/content/docs/api#definition-DeviceBlockMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Device's ID. |

#### Example

##### Query

```gql
mutation deviceBlock($id: ID!) {
  deviceBlock(id: $id) {
    ok
    error
    entity {
      ...DeviceFragment
    }
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{
  "data": {
    "deviceBlock": {
      "ok": true,
      "error": "example",
      "entity": Device
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `deviceUnarchive`

##### Response

Returns a [`DeviceUnarchiveMutation!`](/content/docs/api#definition-DeviceUnarchiveMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Device's ID. |

#### Example

##### Query

```gql
mutation deviceUnarchive($id: ID!) {
  deviceUnarchive(id: $id) {
    ok
    error
    entity {
      ...DeviceFragment
    }
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{
  "data": {
    "deviceUnarchive": {
      "ok": true,
      "error": "example",
      "entity": Device
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `deviceUnblock`

##### Response

Returns a [`DeviceUnblockMutation!`](/content/docs/api#definition-DeviceUnblockMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Device's ID. |

#### Example

##### Query

```gql
mutation deviceUnblock($id: ID!) {
  deviceUnblock(id: $id) {
    ok
    error
    entity {
      ...DeviceFragment
    }
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{
  "data": {
    "deviceUnblock": {
      "ok": true,
      "error": "example",
      "entity": Device
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `deviceUpdate`

##### Response

Returns a [`DeviceUpdateMutation!`](/content/docs/api#definition-DeviceUpdateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Device's ID. |
| `isTrusted` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the Device is trusted. |

#### Example

##### Query

```gql
mutation deviceUpdate(
  $id: ID!,
  $isTrusted: Boolean!
) {
  deviceUpdate(
    id: $id,
    isTrusted: $isTrusted
  ) {
    ok
    error
    entity {
      ...DeviceFragment
    }
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5", "isTrusted": true}
```

##### Response

```json
{
  "data": {
    "deviceUpdate": {
      "ok": true,
      "error": "example",
      "entity": Device
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `dnsFilteringProfileCreate`

##### Response

Returns a [`DnsFilteringProfileCreateMutation!`](/content/docs/api#definition-DnsFilteringProfileCreateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `name` \- [`String!`](/content/docs/api#definition-String/index.html) | The name of the profile |

#### Example

##### Query

```gql
mutation dnsFilteringProfileCreate($name: String!) {
  dnsFilteringProfileCreate(name: $name) {
    ok
    error
    entity {
      ...DnsFilteringProfileFragment
    }
  }
}
```

##### Variables

```json
{"name": "Example Name"}
```

##### Response

```json
{
  "data": {
    "dnsFilteringProfileCreate": {
      "ok": true,
      "error": "example",
      "entity": DnsFilteringProfile
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `dnsFilteringProfileDelete`

##### Response

Returns a [`DnsFilteringProfileDeleteMutation!`](/content/docs/api#definition-DnsFilteringProfileDeleteMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the entity to delete. |

#### Example

##### Query

```gql
mutation dnsFilteringProfileDelete($id: ID!) {
  dnsFilteringProfileDelete(id: $id) {
    ok
    error
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{"data": {"dnsFilteringProfileDelete": {"ok": true, "error": "example"}}}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `dnsFilteringProfileUpdate`

##### Response

Returns a [`DnsFilteringProfileUpdateMutation!`](/content/docs/api#definition-DnsFilteringProfileUpdateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `allowedDomains` \- [`[String!]`](/content/docs/api#definition-String/index.html) | List of allowed domains |
| `contentCategoryConfig` \- [`ContentCategoryConfigInput`](/content/docs/api#definition-ContentCategoryConfigInput/index.html) |  |
| `deniedDomains` \- [`[String!]`](/content/docs/api#definition-String/index.html) | List of denied domains |
| `fallbackMethod` \- [`DohFallbackMethod`](/content/docs/api#definition-DohFallbackMethod/index.html) | The fallback method for the profile |
| `groups` \- [`[String!]`](/content/docs/api#definition-String/index.html) | The list of groups assigned to this profile |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the profile |
| `name` \- [`String`](/content/docs/api#definition-String/index.html) | The name of the profile |
| `priority` \- [`Float`](/content/docs/api#definition-Float/index.html) | The priority of the profile |
| `privacyCategoryConfig` \- [`PrivacyCategoryConfigInput`](/content/docs/api#definition-PrivacyCategoryConfigInput/index.html) |  |
| `securityCategoryConfig` \- [`SecurityCategoryConfigInput`](/content/docs/api#definition-SecurityCategoryConfigInput/index.html) |  |

#### Example

##### Query

```gql
mutation dnsFilteringProfileUpdate(
  $allowedDomains: [String!],
  $contentCategoryConfig: ContentCategoryConfigInput,
  $deniedDomains: [String!],
  $fallbackMethod: DohFallbackMethod,
  $groups: [String!],
  $id: ID!,
  $name: String,
  $priority: Float,
  $privacyCategoryConfig: PrivacyCategoryConfigInput,
  $securityCategoryConfig: SecurityCategoryConfigInput
) {
  dnsFilteringProfileUpdate(
    allowedDomains: $allowedDomains,
    contentCategoryConfig: $contentCategoryConfig,
    deniedDomains: $deniedDomains,
    fallbackMethod: $fallbackMethod,
    groups: $groups,
    id: $id,
    name: $name,
    priority: $priority,
    privacyCategoryConfig: $privacyCategoryConfig,
    securityCategoryConfig: $securityCategoryConfig
  ) {
    ok
    error
    entity {
      ...DnsFilteringProfileFragment
    }
  }
}
```

##### Variables

```json
{
  "allowedDomains": ["example.com"],
  "contentCategoryConfig": ContentCategoryConfigInput,
  "deniedDomains": ["example.com"],
  "fallbackMethod": "AUTO",
  "groups": ["example"],
  "id": "YWJjMTIzeHl6Nzg5",
  "name": "Example Name",
  "priority": 123.45,
  "privacyCategoryConfig": PrivacyCategoryConfigInput,
  "securityCategoryConfig": SecurityCategoryConfigInput
}
```

##### Response

```json
{
  "data": {
    "dnsFilteringProfileUpdate": {
      "ok": true,
      "error": "example",
      "entity": DnsFilteringProfile
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `gatewayCreate`

##### Response

Returns a [`GatewayCreateMutation!`](/content/docs/api#definition-GatewayCreateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `address` \- [`String!`](/content/docs/api#definition-String/index.html) | The Gateway's address. |
| `remoteNetworkId` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Remote Network ID to assign to the Gateway. |
| `sshCAId` \- [`ID`](/content/docs/api#definition-ID/index.html) | The SSH Certificate Authority ID to assign to the Gateway. Default = `null` |
| `x509CAId` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The X509 Certificate Authority ID to assign to the Gateway. |

#### Example

##### Query

```gql
mutation gatewayCreate(
  $address: String!,
  $remoteNetworkId: ID!,
  $sshCAId: ID,
  $x509CAId: ID!
) {
  gatewayCreate(
    address: $address,
    remoteNetworkId: $remoteNetworkId,
    sshCAId: $sshCAId,
    x509CAId: $x509CAId
  ) {
    ok
    error
    entity {
      ...GatewayFragment
    }
  }
}
```

##### Variables

```json
{
  "address": "192.168.1.100",
  "remoteNetworkId": "TmV0d29yazox",
  "sshCAId": "abc123xyz789",
  "x509CAId": "abc123xyz789"
}
```

##### Response

```json
{
  "data": {
    "gatewayCreate": {
      "ok": true,
      "error": "example",
      "entity": Gateway
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `gatewayDelete`

##### Response

Returns a [`GatewayDeleteMutation!`](/content/docs/api#definition-GatewayDeleteMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the entity to delete. |

#### Example

##### Query

```gql
mutation gatewayDelete($id: ID!) {
  gatewayDelete(id: $id) {
    ok
    error
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{"data": {"gatewayDelete": {"ok": true, "error": "example"}}}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `gatewayUpdate`

##### Response

Returns a [`GatewayUpdateMutation!`](/content/docs/api#definition-GatewayUpdateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `address` \- [`String`](/content/docs/api#definition-String/index.html) | The Gateway's address. |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Gateway's ID. |
| `remoteNetworkId` \- [`ID`](/content/docs/api#definition-ID/index.html) | The Remote Network ID to assign to the Gateway. |
| `sshCAId` \- [`ID`](/content/docs/api#definition-ID/index.html) | The SSH Certificate Authority ID to assign to the Gateway. If null, the Gateway's SSH Certificate Authority is unassigned from the Gateway. |
| `x509CAId` \- [`ID`](/content/docs/api#definition-ID/index.html) | The X509 Certificate Authority ID to assign to the Gateway. |

#### Example

##### Query

```gql
mutation gatewayUpdate(
  $address: String,
  $id: ID!,
  $remoteNetworkId: ID,
  $sshCAId: ID,
  $x509CAId: ID
) {
  gatewayUpdate(
    address: $address,
    id: $id,
    remoteNetworkId: $remoteNetworkId,
    sshCAId: $sshCAId,
    x509CAId: $x509CAId
  ) {
    ok
    error
    entity {
      ...GatewayFragment
    }
  }
}
```

##### Variables

```json
{
  "address": "192.168.1.100",
  "id": "YWJjMTIzeHl6Nzg5",
  "remoteNetworkId": "TmV0d29yazox",
  "sshCAId": "abc123xyz789",
  "x509CAId": "abc123xyz789"
}
```

##### Response

```json
{
  "data": {
    "gatewayUpdate": {
      "ok": true,
      "error": "example",
      "entity": Gateway
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `groupCreate`

##### Response

Returns a [`GroupCreateMutation!`](/content/docs/api#definition-GroupCreateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `name` \- [`String!`](/content/docs/api#definition-String/index.html) | The Group's name. |
| `resourceIds` \- [`[ID]`](/content/docs/api#definition-ID/index.html) | List of Resource IDs to add to the group. Default = `[]` |
| `securityPolicyId` \- [`ID`](/content/docs/api#definition-ID/index.html) | The ID of the Security Policy to be assigned to the Group. The default Resource Policy is used if empty. Default = `null` |
| `userIds` \- [`[ID]`](/content/docs/api#definition-ID/index.html) | List of User IDs to add to the Group. Default = `[]` |

#### Example

##### Query

```gql
mutation groupCreate(
  $name: String!,
  $resourceIds: [ID],
  $securityPolicyId: ID,
  $userIds: [ID]
) {
  groupCreate(
    name: $name,
    resourceIds: $resourceIds,
    securityPolicyId: $securityPolicyId,
    userIds: $userIds
  ) {
    ok
    error
    entity {
      ...GroupFragment
    }
  }
}
```

##### Variables

```json
{
  "name": "Example Name",
  "resourceIds": ["UmVzb3VyY2U6MQ"],
  "securityPolicyId": "abc123xyz789",
  "userIds": ["VXNlcjox"]
}
```

##### Response

```json
{
  "data": {
    "groupCreate": {
      "ok": true,
      "error": "example",
      "entity": Group
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `groupDelete`

##### Response

Returns a [`GroupDeleteMutation!`](/content/docs/api#definition-GroupDeleteMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the entity to delete. |

#### Example

##### Query

```gql
mutation groupDelete($id: ID!) {
  groupDelete(id: $id) {
    ok
    error
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{"data": {"groupDelete": {"ok": true, "error": "example"}}}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `groupUpdate`

##### Response

Returns a [`GroupUpdateMutation!`](/content/docs/api#definition-GroupUpdateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `addedResourceIds` \- [`[ID]`](/content/docs/api#definition-ID/index.html) | List of Resource IDs to add to the group. Default = `null` |
| `addedUserIds` \- [`[ID]`](/content/docs/api#definition-ID/index.html) | List of User IDs to add to the group. Default = `null` |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Group's ID. |
| `isActive` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether the Group is active. Default = `null` |
| `name` \- [`String`](/content/docs/api#definition-String/index.html) | The Group's name. Default = `null` |
| `removedResourceIds` \- [`[ID]`](/content/docs/api#definition-ID/index.html) | List of Resource IDs to remove from the group. Default = `null` |
| `removedUserIds` \- [`[ID]`](/content/docs/api#definition-ID/index.html) | List of User IDs to remove from the group. Default = `null` |
| `resourceIds` \- [`[ID]`](/content/docs/api#definition-ID/index.html) | List of Resource IDs to be assigned to the group. Default = `null` |
| `securityPolicyId` \- [`ID`](/content/docs/api#definition-ID/index.html) | The ID of the Security Policy to be assigned to this Group. Default = `null` |
| `userIds` \- [`[ID]`](/content/docs/api#definition-ID/index.html) | List of User IDs to be assigned to the Group. Default = `null` |

#### Example

##### Query

```gql
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

```json
{
  "addedResourceIds": ["UmVzb3VyY2U6MQ"],
  "addedUserIds": ["VXNlcjox"],
  "id": "YWJjMTIzeHl6Nzg5",
  "isActive": true,
  "name": "Example Name",
  "removedResourceIds": ["UmVzb3VyY2U6MQ"],
  "removedUserIds": ["VXNlcjox"],
  "resourceIds": ["UmVzb3VyY2U6MQ"],
  "securityPolicyId": "abc123xyz789",
  "userIds": ["VXNlcjox"]
}
```

##### Response

```json
{
  "data": {
    "groupUpdate": {
      "ok": true,
      "error": "example",
      "entity": Group
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `kubernetesResourceCreate`

##### Response

Returns a [`KubernetesResourceCreateMutation!`](/content/docs/api#definition-KubernetesResourceCreateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `accessPolicy` \- [`AccessPolicyInput`](/content/docs/api#definition-AccessPolicyInput/index.html) | The access policy configured on the resource. Default = `null` |
| `address` \- [`String!`](/content/docs/api#definition-String/index.html) | The Resource's IP/FQDN. |
| `alias` \- [`String`](/content/docs/api#definition-String/index.html) | The Resource's alias address. Default = `null` |
| `approvalMode` \- [`AccessApprovalMode`](/content/docs/api#definition-AccessApprovalMode/index.html) | The approval mode configured on the Resource. Default = `MANUAL` |
| `approverGroupIds` \- [`[ID!]`](/content/docs/api#definition-ID/index.html) | List of Group IDs that can approve access requests for the Resource. Default = `[]` |
| `clusterRef` \- [`String`](/content/docs/api#definition-String/index.html) | The cluster configuration name to reference. When null, the Gateway uses in-cluster credentials. Default = `null` |
| `downstream` \- [`KubernetesDownstreamInput`](/content/docs/api#definition-KubernetesDownstreamInput/index.html) | The downstream configuration. Default = `null` |
| `gatewayId` \- [`ID`](/content/docs/api#definition-ID/index.html) | The Gateway ID for the Kubernetes Resource. |
| `groupIds` \- [`[ID]`](/content/docs/api#definition-ID/index.html) | List of Group IDs added to the Resource. Default = `[]` |
| `isVisible` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Indicates whether this Resource will be in the main Resource list in the Client. Default = `null` |
| `name` \- [`String!`](/content/docs/api#definition-String/index.html) | The Resource's name. |
| `protocols` \- [`ProtocolsInput`](/content/docs/api#definition-ProtocolsInput/index.html) | 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!`](/content/docs/api#definition-ID/index.html) | Remote Network ID to assign to the Resource. |
| `securityPolicyId` \- [`ID`](/content/docs/api#definition-ID/index.html) | Security Policy ID required to access the Resource. Default = `null` |
| `tags` \- [`[TagInput!]`](/content/docs/api#definition-TagInput/index.html) | A list of tags to associate with the Resource. |
| `upstream` \- [`KubernetesUpstreamInput`](/content/docs/api#definition-KubernetesUpstreamInput/index.html) | The upstream configuration. Default = `null` |

#### Example

##### Query

```gql
mutation kubernetesResourceCreate(
  $accessPolicy: AccessPolicyInput,
  $address: String!,
  $alias: String,
  $approvalMode: AccessApprovalMode,
  $approverGroupIds: [ID!],
  $clusterRef: String,
  $downstream: KubernetesDownstreamInput,
  $gatewayId: ID,
  $groupIds: [ID],
  $isVisible: Boolean,
  $name: String!,
  $protocols: ProtocolsInput,
  $remoteNetworkId: ID!,
  $securityPolicyId: ID,
  $tags: [TagInput!],
  $upstream: KubernetesUpstreamInput
) {
  kubernetesResourceCreate(
    accessPolicy: $accessPolicy,
    address: $address,
    alias: $alias,
    approvalMode: $approvalMode,
    approverGroupIds: $approverGroupIds,
    clusterRef: $clusterRef,
    downstream: $downstream,
    gatewayId: $gatewayId,
    groupIds: $groupIds,
    isVisible: $isVisible,
    name: $name,
    protocols: $protocols,
    remoteNetworkId: $remoteNetworkId,
    securityPolicyId: $securityPolicyId,
    tags: $tags,
    upstream: $upstream
  ) {
    ok
    error
    entity {
      ...KubernetesResourceFragment
    }
  }
}
```

##### Variables

```json
{
  "accessPolicy": null,
  "address": "192.168.1.100",
  "alias": "example",
  "approvalMode": "MANUAL",
  "approverGroupIds": ["R3JvdXA6MQ"],
  "clusterRef": "example",
  "downstream": null,
  "gatewayId": "abc123xyz789",
  "groupIds": ["R3JvdXA6MQ"],
  "isVisible": true,
  "name": "Example Name",
  "protocols": null,
  "remoteNetworkId": "TmV0d29yazox",
  "securityPolicyId": "abc123xyz789",
  "tags": [TagInput],
  "upstream": null
}
```

##### Response

```json
{
  "data": {
    "kubernetesResourceCreate": {
      "ok": true,
      "error": "example",
      "entity": KubernetesResource
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `kubernetesResourceUpdate`

##### Response

Returns a [`KubernetesResourceUpdateMutation!`](/content/docs/api#definition-KubernetesResourceUpdateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `accessPolicy` \- [`AccessPolicyInput`](/content/docs/api#definition-AccessPolicyInput/index.html) | The access policy configured on the resource. If unspecified or null, the resource's existing access policy remains unchanged. |
| `addedApproverGroupIds` \- [`[ID!]`](/content/docs/api#definition-ID/index.html) | List of Group IDs to add as approvers. Default = `null` |
| `addedGroupIds` \- [`[ID]`](/content/docs/api#definition-ID/index.html) | List of Group IDs to add. Default = `null` |
| `address` \- [`String`](/content/docs/api#definition-String/index.html) | The Resource's IP/FQDN. Default = `null` |
| `alias` \- [`String`](/content/docs/api#definition-String/index.html) | The Resource's alias. If unspecified, alias remains unchanged. If null, the alias will be cleared. |
| `approvalMode` \- [`AccessApprovalMode`](/content/docs/api#definition-AccessApprovalMode/index.html) | The approval mode configured on the Resource. If unspecified or null, the resource's existing approval mode remains unchanged. |
| `approverGroupIds` \- [`[ID!]`](/content/docs/api#definition-ID/index.html) | List of Group IDs to be assigned as approvers for the Resource. Default = `null` |
| `clusterRef` \- [`String`](/content/docs/api#definition-String/index.html) | The cluster configuration name to reference.If null, the reference is removed. |
| `downstream` \- [`KubernetesDownstreamInput`](/content/docs/api#definition-KubernetesDownstreamInput/index.html) | The downstream configuration. Default = `null` |
| `gatewayId` \- [`ID`](/content/docs/api#definition-ID/index.html) | The Gateway ID for the Kubernetes Resource. Default = `null` |
| `groupIds` \- [`[ID]`](/content/docs/api#definition-ID/index.html) | List of Group IDs to be assigned to the Resource. Default = `null` |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Resource's ID. |
| `isActive` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Indicates if the Resource is active. Default = `null` |
| `isVisible` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Indicates whether this Resource will be in the main Resource list in the Client. Default = `null` |
| `name` \- [`String`](/content/docs/api#definition-String/index.html) | The Resource's name. Default = `null` |
| `protocols` \- [`ProtocolsInput`](/content/docs/api#definition-ProtocolsInput/index.html) | Restrict access to certain protocols and ports. Default = `null` |
| `remoteNetworkId` \- [`ID`](/content/docs/api#definition-ID/index.html) | Remote Network ID to assign to the Resource. Default = `null` |
| `removedApproverGroupIds` \- [`[ID!]`](/content/docs/api#definition-ID/index.html) | List of Group IDs to remove as approvers. Default = `null` |
| `removedGroupIds` \- [`[ID]`](/content/docs/api#definition-ID/index.html) | List of Group IDs to remove. Default = `null` |
| `securityPolicyId` \- [`ID`](/content/docs/api#definition-ID/index.html) | Security Policy ID required to access the Resource. If unspecified, policy remains unchanged. If null, the policy is reset to the Default Policy. |
| `tags` \- [`[TagInput!]`](/content/docs/api#definition-TagInput/index.html) | A list of tags to associate with the Resource. If unspecified, the resource's existing tags remain unchanged. If null, the resource's existing tags are removed. |
| `upstream` \- [`KubernetesUpstreamInput`](/content/docs/api#definition-KubernetesUpstreamInput/index.html) | The upstream configuration. Default = `null` |

#### Example

##### Query

```gql
mutation kubernetesResourceUpdate(
  $accessPolicy: AccessPolicyInput,
  $addedApproverGroupIds: [ID!],
  $addedGroupIds: [ID],
  $address: String,
  $alias: String,
  $approvalMode: AccessApprovalMode,
  $approverGroupIds: [ID!],
  $clusterRef: String,
  $downstream: KubernetesDownstreamInput,
  $gatewayId: ID,
  $groupIds: [ID],
  $id: ID!,
  $isActive: Boolean,
  $isVisible: Boolean,
  $name: String,
  $protocols: ProtocolsInput,
  $remoteNetworkId: ID,
  $removedApproverGroupIds: [ID!],
  $removedGroupIds: [ID],
  $securityPolicyId: ID,
  $tags: [TagInput!],
  $upstream: KubernetesUpstreamInput
) {
  kubernetesResourceUpdate(
    accessPolicy: $accessPolicy,
    addedApproverGroupIds: $addedApproverGroupIds,
    addedGroupIds: $addedGroupIds,
    address: $address,
    alias: $alias,
    approvalMode: $approvalMode,
    approverGroupIds: $approverGroupIds,
    clusterRef: $clusterRef,
    downstream: $downstream,
    gatewayId: $gatewayId,
    groupIds: $groupIds,
    id: $id,
    isActive: $isActive,
    isVisible: $isVisible,
    name: $name,
    protocols: $protocols,
    remoteNetworkId: $remoteNetworkId,
    removedApproverGroupIds: $removedApproverGroupIds,
    removedGroupIds: $removedGroupIds,
    securityPolicyId: $securityPolicyId,
    tags: $tags,
    upstream: $upstream
  ) {
    ok
    error
    entity {
      ...KubernetesResourceFragment
    }
  }
}
```

##### Variables

```json
{
  "accessPolicy": AccessPolicyInput,
  "addedApproverGroupIds": ["R3JvdXA6MQ"],
  "addedGroupIds": ["R3JvdXA6MQ"],
  "address": "192.168.1.100",
  "alias": "example",
  "approvalMode": "MANUAL",
  "approverGroupIds": ["R3JvdXA6MQ"],
  "clusterRef": "example",
  "downstream": null,
  "gatewayId": "abc123xyz789",
  "groupIds": ["R3JvdXA6MQ"],
  "id": "YWJjMTIzeHl6Nzg5",
  "isActive": true,
  "isVisible": true,
  "name": "Example Name",
  "protocols": null,
  "remoteNetworkId": "TmV0d29yazox",
  "removedApproverGroupIds": ["R3JvdXA6MQ"],
  "removedGroupIds": ["R3JvdXA6MQ"],
  "securityPolicyId": "abc123xyz789",
  "tags": [TagInput],
  "upstream": null
}
```

##### Response

```json
{
  "data": {
    "kubernetesResourceUpdate": {
      "ok": true,
      "error": "example",
      "entity": KubernetesResource
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `remoteNetworkCreate`

##### Response

Returns a [`RemoteNetworkCreateMutation!`](/content/docs/api#definition-RemoteNetworkCreateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `isActive` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Indicates whether the Remote Network is active. The default is 'true'. Default = `true` |
| `location` \- [`RemoteNetworkLocation`](/content/docs/api#definition-RemoteNetworkLocation/index.html) | The Remote Network's location. Default = `OTHER` |
| `name` \- [`String!`](/content/docs/api#definition-String/index.html) | The Remote Network's name. |
| `networkType` \- [`RemoteNetworkType`](/content/docs/api#definition-RemoteNetworkType/index.html) | The Remote Network's network type. Default = `REGULAR` |

#### Example

##### Query

```gql
mutation remoteNetworkCreate(
  $isActive: Boolean,
  $location: RemoteNetworkLocation,
  $name: String!,
  $networkType: RemoteNetworkType
) {
  remoteNetworkCreate(
    isActive: $isActive,
    location: $location,
    name: $name,
    networkType: $networkType
  ) {
    ok
    error
    entity {
      ...RemoteNetworkFragment
    }
  }
}
```

##### Variables

```json
{
  "isActive": true,
  "location": "OTHER",
  "name": "Example Name",
  "networkType": "REGULAR"
}
```

##### Response

```json
{
  "data": {
    "remoteNetworkCreate": {
      "ok": true,
      "error": "example",
      "entity": RemoteNetwork
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `remoteNetworkDelete`

##### Response

Returns a [`RemoteNetworkDeleteMutation!`](/content/docs/api#definition-RemoteNetworkDeleteMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the entity to delete. |

#### Example

##### Query

```gql
mutation remoteNetworkDelete($id: ID!) {
  remoteNetworkDelete(id: $id) {
    ok
    error
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{"data": {"remoteNetworkDelete": {"ok": true, "error": "example"}}}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `remoteNetworkUpdate`

##### Response

Returns a [`RemoteNetworkUpdateMutation!`](/content/docs/api#definition-RemoteNetworkUpdateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Remote Network's ID. |
| `isActive` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Indicates whether the Remote Network is active. Default = `null` |
| `location` \- [`RemoteNetworkLocation`](/content/docs/api#definition-RemoteNetworkLocation/index.html) | The Remote Network's location. Default = `null` |
| `name` \- [`String`](/content/docs/api#definition-String/index.html) | The Remote Network's name. Default = `null` |

#### Example

##### Query

```gql
mutation remoteNetworkUpdate(
  $id: ID!,
  $isActive: Boolean,
  $location: RemoteNetworkLocation,
  $name: String
) {
  remoteNetworkUpdate(
    id: $id,
    isActive: $isActive,
    location: $location,
    name: $name
  ) {
    ok
    error
    entity {
      ...RemoteNetworkFragment
    }
  }
}
```

##### Variables

```json
{
  "id": "YWJjMTIzeHl6Nzg5",
  "isActive": true,
  "location": "null",
  "name": "Example Name"
}
```

##### Response

```json
{
  "data": {
    "remoteNetworkUpdate": {
      "ok": true,
      "error": "example",
      "entity": RemoteNetwork
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `resourceAccessAdd`

##### Response

Returns a [`ResourceAccessAddMutation!`](/content/docs/api#definition-ResourceAccessAddMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `access` \- [`[AccessInput!]!`](/content/docs/api#definition-AccessInput/index.html) | 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!`](/content/docs/api#definition-ID/index.html) | The Resource's ID. |

#### Example

##### Query

```gql
mutation resourceAccessAdd(
  $access: [AccessInput!]!,
  $resourceId: ID!
) {
  resourceAccessAdd(
    access: $access,
    resourceId: $resourceId
  ) {
    ok
    error
    entity {
      ...ResourceFragment
    }
  }
}
```

##### Variables

```json
{"access": [AccessInput], "resourceId": "UmVzb3VyY2U6MQ"}
```

##### Response

```json
{
  "data": {
    "resourceAccessAdd": {
      "ok": true,
      "error": "example",
      "entity": Resource
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `resourceAccessRemove`

##### Response

Returns a [`ResourceAccessRemoveMutation!`](/content/docs/api#definition-ResourceAccessRemoveMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `principalIds` \- [`[ID!]!`](/content/docs/api#definition-ID/index.html) | List of principals being removed from accessing the Resource. |
| `resourceId` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Resource's ID. |

#### Example

##### Query

```gql
mutation resourceAccessRemove(
  $principalIds: [ID!]!,
  $resourceId: ID!
) {
  resourceAccessRemove(
    principalIds: $principalIds,
    resourceId: $resourceId
  ) {
    ok
    error
    entity {
      ...ResourceFragment
    }
  }
}
```

##### Variables

```json
{"principalIds": ["abc123xyz789"], "resourceId": "UmVzb3VyY2U6MQ"}
```

##### Response

```json
{
  "data": {
    "resourceAccessRemove": {
      "ok": true,
      "error": "example",
      "entity": Resource
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `resourceAccessSet`

##### Response

Returns a [`ResourceAccessSetMutation!`](/content/docs/api#definition-ResourceAccessSetMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `access` \- [`[AccessInput!]!`](/content/docs/api#definition-AccessInput/index.html) | List of accesses to the Resource. Existing accesses to the Resource will be removed. |
| `resourceId` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Resource's ID. |

#### Example

##### Query

```gql
mutation resourceAccessSet(
  $access: [AccessInput!]!,
  $resourceId: ID!
) {
  resourceAccessSet(
    access: $access,
    resourceId: $resourceId
  ) {
    ok
    error
    entity {
      ...ResourceFragment
    }
  }
}
```

##### Variables

```json
{"access": [AccessInput], "resourceId": "UmVzb3VyY2U6MQ"}
```

##### Response

```json
{
  "data": {
    "resourceAccessSet": {
      "ok": true,
      "error": "example",
      "entity": Resource
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `resourceCreate`

##### Response

Returns a [`ResourceCreateMutation!`](/content/docs/api#definition-ResourceCreateMutation/index.html)

##### Arguments

#### Example

##### Query

```gql
mutation resourceCreate(
  $accessPolicy: AccessPolicyInput,
  $address: String!,
  $alias: String,
  $approvalMode: AccessApprovalMode,
  $approverGroupIds: [ID!],
  $groupIds: [ID],
  $isBrowserShortcutEnabled: Boolean,
  $isVisible: Boolean,
  $name: String!,
  $protocols: ProtocolsInput,
  $remoteNetworkId: ID!,
  $routingMode: RoutingMode,
  $securityPolicyId: ID,
  $tags: [TagInput!]
) {
  resourceCreate(
    accessPolicy: $accessPolicy,
    address: $address,
    alias: $alias,
    approvalMode: $approvalMode,
    approverGroupIds: $approverGroupIds,
    groupIds: $groupIds,
    isBrowserShortcutEnabled: $isBrowserShortcutEnabled,
    isVisible: $isVisible,
    name: $name,
    protocols: $protocols,
    remoteNetworkId: $remoteNetworkId,
    routingMode: $routingMode,
    securityPolicyId: $securityPolicyId,
    tags: $tags
  ) {
    ok
    error
    entity {
      ...NetworkResourceFragment
    }
  }
}
```

##### Variables

```json
{
  "accessPolicy": null,
  "address": "192.168.1.100",
  "alias": "example",
  "approvalMode": "MANUAL",
  "approverGroupIds": ["R3JvdXA6MQ"],
  "groupIds": ["R3JvdXA6MQ"],
  "isBrowserShortcutEnabled": true,
  "isVisible": true,
  "name": "Example Name",
  "protocols": null,
  "remoteNetworkId": "TmV0d29yazox",
  "routingMode": "null",
  "securityPolicyId": "abc123xyz789",
  "tags": [TagInput]
}
```

##### Response

```json
{
  "data": {
    "resourceCreate": {
      "ok": true,
      "error": "example",
      "entity": NetworkResource
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `resourceDelete`

##### Response

Returns a [`ResourceDeleteMutation!`](/content/docs/api#definition-ResourceDeleteMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the entity to delete. |

#### Example

##### Query

```gql
mutation resourceDelete($id: ID!) {
  resourceDelete(id: $id) {
    ok
    error
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{"data": {"resourceDelete": {"ok": true, "error": "example"}}}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `resourceUpdate`

##### Response

Returns a [`ResourceUpdateMutation!`](/content/docs/api#definition-ResourceUpdateMutation/index.html)

##### Arguments

#### Example

##### Query

```gql
mutation resourceUpdate(
  $accessPolicy: AccessPolicyInput,
  $addedApproverGroupIds: [ID!],
  $addedGroupIds: [ID],
  $address: String,
  $alias: String,
  $approvalMode: AccessApprovalMode,
  $approverGroupIds: [ID!],
  $groupIds: [ID],
  $id: ID!,
  $isActive: Boolean,
  $isBrowserShortcutEnabled: Boolean,
  $isVisible: Boolean,
  $name: String,
  $protocols: ProtocolsInput,
  $remoteNetworkId: ID,
  $removedApproverGroupIds: [ID!],
  $removedGroupIds: [ID],
  $routingMode: RoutingMode,
  $securityPolicyId: ID,
  $tags: [TagInput!]
) {
  resourceUpdate(
    accessPolicy: $accessPolicy,
    addedApproverGroupIds: $addedApproverGroupIds,
    addedGroupIds: $addedGroupIds,
    address: $address,
    alias: $alias,
    approvalMode: $approvalMode,
    approverGroupIds: $approverGroupIds,
    groupIds: $groupIds,
    id: $id,
    isActive: $isActive,
    isBrowserShortcutEnabled: $isBrowserShortcutEnabled,
    isVisible: $isVisible,
    name: $name,
    protocols: $protocols,
    remoteNetworkId: $remoteNetworkId,
    removedApproverGroupIds: $removedApproverGroupIds,
    removedGroupIds: $removedGroupIds,
    routingMode: $routingMode,
    securityPolicyId: $securityPolicyId,
    tags: $tags
  ) {
    ok
    error
    entity {
      ...NetworkResourceFragment
    }
  }
}
```

##### Variables

```json
{
  "accessPolicy": AccessPolicyInput,
  "addedApproverGroupIds": ["R3JvdXA6MQ"],
  "addedGroupIds": ["R3JvdXA6MQ"],
  "address": "192.168.1.100",
  "alias": "example",
  "approvalMode": "MANUAL",
  "approverGroupIds": ["R3JvdXA6MQ"],
  "groupIds": ["R3JvdXA6MQ"],
  "id": "YWJjMTIzeHl6Nzg5",
  "isActive": true,
  "isBrowserShortcutEnabled": true,
  "isVisible": true,
  "name": "Example Name",
  "protocols": null,
  "remoteNetworkId": "TmV0d29yazox",
  "removedApproverGroupIds": ["R3JvdXA6MQ"],
  "removedGroupIds": ["R3JvdXA6MQ"],
  "routingMode": "THROUGH_TWINGATE",
  "securityPolicyId": "abc123xyz789",
  "tags": [TagInput]
}
```

##### Response

```json
{
  "data": {
    "resourceUpdate": {
      "ok": true,
      "error": "example",
      "entity": NetworkResource
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `securityPolicyUpdate`

##### Response

Returns a [`SecurityPolicyUpdateMutation!`](/content/docs/api#definition-SecurityPolicyUpdateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `addedGroupIds` \- [`[ID]`](/content/docs/api#definition-ID/index.html) | List of Group IDs to add. Default = `null` |
| `groupIds` \- [`[ID]`](/content/docs/api#definition-ID/index.html) | 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!`](/content/docs/api#definition-ID/index.html) | The Security Policy's ID. |
| `removedGroupIds` \- [`[ID]`](/content/docs/api#definition-ID/index.html) | List of Group IDs to remove. Groups removed from this policy will enforce the default resource policy. Default = `null` |

#### Example

##### Query

```gql
mutation securityPolicyUpdate(
  $addedGroupIds: [ID],
  $groupIds: [ID],
  $id: ID!,
  $removedGroupIds: [ID]
) {
  securityPolicyUpdate(
    addedGroupIds: $addedGroupIds,
    groupIds: $groupIds,
    id: $id,
    removedGroupIds: $removedGroupIds
  ) {
    ok
    error
    entity {
      ...SecurityPolicyFragment
    }
  }
}
```

##### Variables

```json
{
  "addedGroupIds": ["R3JvdXA6MQ"],
  "groupIds": ["R3JvdXA6MQ"],
  "id": "YWJjMTIzeHl6Nzg5",
  "removedGroupIds": ["R3JvdXA6MQ"]
}
```

##### Response

```json
{
  "data": {
    "securityPolicyUpdate": {
      "ok": true,
      "error": "example",
      "entity": SecurityPolicy
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `serialNumbersCreate`

##### Response

Returns a [`SerialNumbersCreateMutation!`](/content/docs/api#definition-SerialNumbersCreateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `serialNumbers` \- [`[String!]!`](/content/docs/api#definition-String/index.html) | List of serial numbers |

#### Example

##### Query

```gql
mutation serialNumbersCreate($serialNumbers: [String!]!) {
  serialNumbersCreate(serialNumbers: $serialNumbers) {
    ok
    error
    entities {
      ...SerialNumberFragment
    }
  }
}
```

##### Variables

```json
{"serialNumbers": ["example"]}
```

##### Response

```json
{
  "data": {
    "serialNumbersCreate": {
      "ok": true,
      "error": "example",
      "entities": [SerialNumber]
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `serialNumbersDelete`

##### Response

Returns a [`SerialNumbersDeleteMutation!`](/content/docs/api#definition-SerialNumbersDeleteMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `serialNumbers` \- [`[String!]!`](/content/docs/api#definition-String/index.html) | List of serial numbers |

#### Example

##### Query

```gql
mutation serialNumbersDelete($serialNumbers: [String!]!) {
  serialNumbersDelete(serialNumbers: $serialNumbers) {
    ok
    error
  }
}
```

##### Variables

```json
{"serialNumbers": ["example"]}
```

##### Response

```json
{"data": {"serialNumbersDelete": {"ok": true, "error": "example"}}}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `serviceAccountCreate`

##### Response

Returns a [`ServiceAccountCreateMutation!`](/content/docs/api#definition-ServiceAccountCreateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `name` \- [`String!`](/content/docs/api#definition-String/index.html) | The Service Account's name. |
| `resourceIds` \- [`[ID]`](/content/docs/api#definition-ID/index.html) | List of Resource IDs to add to the Service Account. Default = `[]` |

#### Example

##### Query

```gql
mutation serviceAccountCreate(
  $name: String!,
  $resourceIds: [ID]
) {
  serviceAccountCreate(
    name: $name,
    resourceIds: $resourceIds
  ) {
    ok
    error
    entity {
      ...ServiceAccountFragment
    }
  }
}
```

##### Variables

```json
{"name": "Example Name", "resourceIds": ["UmVzb3VyY2U6MQ"]}
```

##### Response

```json
{
  "data": {
    "serviceAccountCreate": {
      "ok": true,
      "error": "example",
      "entity": ServiceAccount
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `serviceAccountDelete`

##### Response

Returns a [`ServiceAccountDeleteMutation!`](/content/docs/api#definition-ServiceAccountDeleteMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the entity to delete. |

#### Example

##### Query

```gql
mutation serviceAccountDelete($id: ID!) {
  serviceAccountDelete(id: $id) {
    ok
    error
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{"data": {"serviceAccountDelete": {"ok": true, "error": "example"}}}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `serviceAccountKeyCreate`

##### Response

Returns a [`ServiceAccountKeyCreateMutation!`](/content/docs/api#definition-ServiceAccountKeyCreateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `expirationTime` \- [`Int!`](/content/docs/api#definition-Int/index.html) | Number of days key will expire in, a value from 0-365 (inclusive) is required. |
| `name` \- [`String`](/content/docs/api#definition-String/index.html) | The Service Account Key's name. Default = `null` |
| `serviceAccountId` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Service Account's ID. |

#### Example

##### Query

```gql
mutation serviceAccountKeyCreate(
  $expirationTime: Int!,
  $name: String,
  $serviceAccountId: ID!
) {
  serviceAccountKeyCreate(
    expirationTime: $expirationTime,
    name: $name,
    serviceAccountId: $serviceAccountId
  ) {
    ok
    error
    entity {
      ...ServiceAccountKeyFragment
    }
    token
  }
}
```

##### Variables

```json
{
  "expirationTime": 12345,
  "name": "Example Name",
  "serviceAccountId": "abc123xyz789"
}
```

##### Response

```json
{
  "data": {
    "serviceAccountKeyCreate": {
      "ok": true,
      "error": "example",
      "entity": ServiceAccountKey,
      "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `serviceAccountKeyDelete`

##### Response

Returns a [`ServiceAccountKeyDeleteMutation!`](/content/docs/api#definition-ServiceAccountKeyDeleteMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the entity to delete. |

#### Example

##### Query

```gql
mutation serviceAccountKeyDelete($id: ID!) {
  serviceAccountKeyDelete(id: $id) {
    ok
    error
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{"data": {"serviceAccountKeyDelete": {"ok": true, "error": "example"}}}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `serviceAccountKeyRevoke`

##### Response

Returns a [`ServiceAccountKeyRevokeMutation!`](/content/docs/api#definition-ServiceAccountKeyRevokeMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Service Account Key's ID. |

#### Example

##### Query

```gql
mutation serviceAccountKeyRevoke($id: ID!) {
  serviceAccountKeyRevoke(id: $id) {
    ok
    error
    entity {
      ...ServiceAccountKeyFragment
    }
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{
  "data": {
    "serviceAccountKeyRevoke": {
      "ok": true,
      "error": "example",
      "entity": ServiceAccountKey
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `serviceAccountKeyUpdate`

##### Response

Returns a [`ServiceAccountKeyUpdateMutation!`](/content/docs/api#definition-ServiceAccountKeyUpdateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Service Account Key's ID. |
| `name` \- [`String!`](/content/docs/api#definition-String/index.html) | The Service Account Key's name. |

#### Example

##### Query

```gql
mutation serviceAccountKeyUpdate(
  $id: ID!,
  $name: String!
) {
  serviceAccountKeyUpdate(
    id: $id,
    name: $name
  ) {
    ok
    error
    entity {
      ...ServiceAccountKeyFragment
    }
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5", "name": "Example Name"}
```

##### Response

```json
{
  "data": {
    "serviceAccountKeyUpdate": {
      "ok": true,
      "error": "example",
      "entity": ServiceAccountKey
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `serviceAccountUpdate`

##### Response

Returns a [`ServiceAccountUpdateMutation!`](/content/docs/api#definition-ServiceAccountUpdateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `addedResourceIds` \- [`[ID]`](/content/docs/api#definition-ID/index.html) | List of Resource IDs added to the Service Account. Default = `[]` |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The Service Account's ID. |
| `name` \- [`String`](/content/docs/api#definition-String/index.html) | The Service Account's name. Default = `null` |
| `removedResourceIds` \- [`[ID]`](/content/docs/api#definition-ID/index.html) | List of Resource IDs removed from the Service Account. Default = `[]` |
| `resourceIds` \- [`[ID]`](/content/docs/api#definition-ID/index.html) | List of Resource IDs to be assigned to the Service Account. Default = `[]` |

#### Example

##### Query

```gql
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

```json
{
  "addedResourceIds": ["UmVzb3VyY2U6MQ"],
  "id": "YWJjMTIzeHl6Nzg5",
  "name": "Example Name",
  "removedResourceIds": ["UmVzb3VyY2U6MQ"],
  "resourceIds": ["UmVzb3VyY2U6MQ"]
}
```

##### Response

```json
{
  "data": {
    "serviceAccountUpdate": {
      "ok": true,
      "error": "example",
      "entity": ServiceAccount
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `sshCertificateAuthorityCreate`

##### Response

Returns an [`SSHCertificateAuthorityCreateMutation!`](/content/docs/api#definition-SSHCertificateAuthorityCreateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `name` \- [`String!`](/content/docs/api#definition-String/index.html) | The name of the Certificate Authority. |
| `publicKey` \- [`String!`](/content/docs/api#definition-String/index.html) | The SSH public key. |

#### Example

##### Query

```gql
mutation sshCertificateAuthorityCreate(
  $name: String!,
  $publicKey: String!
) {
  sshCertificateAuthorityCreate(
    name: $name,
    publicKey: $publicKey
  ) {
    ok
    error
    entity {
      ...SSHCertificateAuthorityFragment
    }
  }
}
```

##### Variables

```json
{"name": "Example Name", "publicKey": "sk_test_1234567890abcdef"}
```

##### Response

```json
{
  "data": {
    "sshCertificateAuthorityCreate": {
      "ok": true,
      "error": "example",
      "entity": SSHCertificateAuthority
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `sshCertificateAuthorityDelete`

##### Response

Returns an [`SSHCertificateAuthorityDeleteMutation!`](/content/docs/api#definition-SSHCertificateAuthorityDeleteMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the entity to delete. |

#### Example

##### Query

```gql
mutation sshCertificateAuthorityDelete($id: ID!) {
  sshCertificateAuthorityDelete(id: $id) {
    ok
    error
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{"data": {"sshCertificateAuthorityDelete": {"ok": true, "error": "example"}}}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `sshResourceCreate`

##### Response

Returns an [`SSHResourceCreateMutation!`](/content/docs/api#definition-SSHResourceCreateMutation/index.html)

##### Arguments

#### Example

##### Query

```gql
mutation sshResourceCreate(
  $accessPolicy: AccessPolicyInput,
  $address: String!,
  $alias: String,
  $approvalMode: AccessApprovalMode,
  $approverGroupIds: [ID!],
  $downstream: SSHDownstreamInput,
  $gatewayId: ID!,
  $groupIds: [ID],
  $isVisible: Boolean,
  $name: String!,
  $protocols: ProtocolsInput,
  $remoteNetworkId: ID!,
  $securityPolicyId: ID,
  $tags: [TagInput!],
  $upstream: SSHUpstreamInput
) {
  sshResourceCreate(
    accessPolicy: $accessPolicy,
    address: $address,
    alias: $alias,
    approvalMode: $approvalMode,
    approverGroupIds: $approverGroupIds,
    downstream: $downstream,
    gatewayId: $gatewayId,
    groupIds: $groupIds,
    isVisible: $isVisible,
    name: $name,
    protocols: $protocols,
    remoteNetworkId: $remoteNetworkId,
    securityPolicyId: $securityPolicyId,
    tags: $tags,
    upstream: $upstream
  ) {
    ok
    error
    entity {
      ...SSHResourceFragment
    }
  }
}
```

##### Variables

```json
{
  "accessPolicy": null,
  "address": "192.168.1.100",
  "alias": "example",
  "approvalMode": "MANUAL",
  "approverGroupIds": ["R3JvdXA6MQ"],
  "downstream": null,
  "gatewayId": "abc123xyz789",
  "groupIds": ["R3JvdXA6MQ"],
  "isVisible": true,
  "name": "Example Name",
  "protocols": null,
  "remoteNetworkId": "TmV0d29yazox",
  "securityPolicyId": "abc123xyz789",
  "tags": [TagInput],
  "upstream": null
}
```

##### Response

```json
{
  "data": {
    "sshResourceCreate": {
      "ok": true,
      "error": "example",
      "entity": SSHResource
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `sshResourceUpdate`

##### Response

Returns an [`SSHResourceUpdateMutation!`](/content/docs/api#definition-SSHResourceUpdateMutation/index.html)

##### Arguments

#### Example

##### Query

```gql
mutation sshResourceUpdate(
  $accessPolicy: AccessPolicyInput,
  $addedApproverGroupIds: [ID!],
  $addedGroupIds: [ID],
  $address: String,
  $alias: String,
  $approvalMode: AccessApprovalMode,
  $approverGroupIds: [ID!],
  $downstream: SSHDownstreamInput,
  $gatewayId: ID,
  $groupIds: [ID],
  $id: ID!,
  $isActive: Boolean,
  $isVisible: Boolean,
  $name: String,
  $protocols: ProtocolsInput,
  $remoteNetworkId: ID,
  $removedApproverGroupIds: [ID!],
  $removedGroupIds: [ID],
  $securityPolicyId: ID,
  $tags: [TagInput!],
  $upstream: SSHUpstreamInput
) {
  sshResourceUpdate(
    accessPolicy: $accessPolicy,
    addedApproverGroupIds: $addedApproverGroupIds,
    addedGroupIds: $addedGroupIds,
    address: $address,
    alias: $alias,
    approvalMode: $approvalMode,
    approverGroupIds: $approverGroupIds,
    downstream: $downstream,
    gatewayId: $gatewayId,
    groupIds: $groupIds,
    id: $id,
    isActive: $isActive,
    isVisible: $isVisible,
    name: $name,
    protocols: $protocols,
    remoteNetworkId: $remoteNetworkId,
    removedApproverGroupIds: $removedApproverGroupIds,
    removedGroupIds: $removedGroupIds,
    securityPolicyId: $securityPolicyId,
    tags: $tags,
    upstream: $upstream
  ) {
    ok
    error
    entity {
      ...SSHResourceFragment
    }
  }
}
```

##### Variables

```json
{
  "accessPolicy": AccessPolicyInput,
  "addedApproverGroupIds": ["R3JvdXA6MQ"],
  "addedGroupIds": ["R3JvdXA6MQ"],
  "address": "192.168.1.100",
  "alias": "example",
  "approvalMode": "MANUAL",
  "approverGroupIds": ["R3JvdXA6MQ"],
  "downstream": null,
  "gatewayId": "abc123xyz789",
  "groupIds": ["R3JvdXA6MQ"],
  "id": "YWJjMTIzeHl6Nzg5",
  "isActive": true,
  "isVisible": true,
  "name": "Example Name",
  "protocols": null,
  "remoteNetworkId": "TmV0d29yazox",
  "removedApproverGroupIds": ["R3JvdXA6MQ"],
  "removedGroupIds": ["R3JvdXA6MQ"],
  "securityPolicyId": "abc123xyz789",
  "tags": [TagInput],
  "upstream": null
}
```

##### Response

```json
{
  "data": {
    "sshResourceUpdate": {
      "ok": true,
      "error": "example",
      "entity": SSHResource
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `userCreate`

##### Response

Returns a [`UserCreateMutation!`](/content/docs/api#definition-UserCreateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `email` \- [`String!`](/content/docs/api#definition-String/index.html) | The User's email. |
| `firstName` \- [`String`](/content/docs/api#definition-String/index.html) | The User's first name. Default = `null` |
| `lastName` \- [`String`](/content/docs/api#definition-String/index.html) | The User's last name. Default = `null` |
| `role` \- [`UserRole`](/content/docs/api#definition-UserRole/index.html) | The User's role. Default = `MEMBER` |

#### Example

##### Query

```gql
mutation userCreate(
  $email: String!,
  $firstName: String,
  $lastName: String,
  $role: UserRole
) {
  userCreate(
    email: $email,
    firstName: $firstName,
    lastName: $lastName,
    role: $role
  ) {
    ok
    error
    entity {
      ...UserFragment
    }
  }
}
```

##### Variables

```json
{
  "email": "user@example.com",
  "firstName": "John",
  "lastName": "Doe",
  "role": "MEMBER"
}
```

##### Response

```json
{
  "data": {
    "userCreate": {
      "ok": true,
      "error": "example",
      "entity": User
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `userDelete`

##### Response

Returns a [`UserDeleteMutation!`](/content/docs/api#definition-UserDeleteMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the entity to delete. |

#### Example

##### Query

```gql
mutation userDelete($id: ID!) {
  userDelete(id: $id) {
    ok
    error
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{"data": {"userDelete": {"ok": true, "error": "example"}}}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `userDetailsUpdate`

##### Response

Returns a [`UserDetailsUpdateMutation!`](/content/docs/api#definition-UserDetailsUpdateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `firstName` \- [`String`](/content/docs/api#definition-String/index.html) | The User's first name. Default = `null` |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The User's ID. |
| `lastName` \- [`String`](/content/docs/api#definition-String/index.html) | The User's last name. Default = `null` |
| `state` \- [`UserStateUpdateInput`](/content/docs/api#definition-UserStateUpdateInput/index.html) | The User's state. Default = `null` |

#### Example

##### Query

```gql
mutation userDetailsUpdate(
  $firstName: String,
  $id: ID!,
  $lastName: String,
  $state: UserStateUpdateInput
) {
  userDetailsUpdate(
    firstName: $firstName,
    id: $id,
    lastName: $lastName,
    state: $state
  ) {
    ok
    error
    entity {
      ...UserFragment
    }
  }
}
```

##### Variables

```json
{
  "firstName": "John",
  "id": "YWJjMTIzeHl6Nzg5",
  "lastName": "Doe",
  "state": "null"
}
```

##### Response

```json
{
  "data": {
    "userDetailsUpdate": {
      "ok": true,
      "error": "example",
      "entity": User
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `userResetMfa`

##### Response

Returns an [`UserResetMFAMutation!`](/content/docs/api#definition-UserResetMFAMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The user ID |

#### Example

##### Query

```gql
mutation userResetMfa($id: ID!) {
  userResetMfa(id: $id) {
    ok
    error
    entity {
      ...UserFragment
    }
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{
  "data": {
    "userResetMfa": {
      "ok": true,
      "error": "example",
      "entity": User
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `userRoleUpdate`

##### Response

Returns a [`UserRoleUpdateMutation!`](/content/docs/api#definition-UserRoleUpdateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The User's ID. |
| `role` \- [`UserRole!`](/content/docs/api#definition-UserRole/index.html) | The User's role. |

#### Example

##### Query

```gql
mutation userRoleUpdate(
  $id: ID!,
  $role: UserRole!
) {
  userRoleUpdate(
    id: $id,
    role: $role
  ) {
    ok
    error
    entity {
      ...UserFragment
    }
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5", "role": "ADMIN"}
```

##### Response

```json
{
  "data": {
    "userRoleUpdate": {
      "ok": true,
      "error": "example",
      "entity": User
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `webAppResourceCreate`

##### Response

Returns a [`WebAppResourceCreateMutation!`](/content/docs/api#definition-WebAppResourceCreateMutation/index.html)

##### Arguments

#### Example

##### Query

```gql
mutation webAppResourceCreate(
  $accessPolicy: AccessPolicyInput,
  $address: String!,
  $alias: String,
  $approvalMode: AccessApprovalMode,
  $approverGroupIds: [ID!],
  $downstream: WebAppDownstreamInput!,
  $gatewayId: ID!,
  $groupIds: [ID],
  $isVisible: Boolean,
  $name: String!,
  $protocols: ProtocolsInput,
  $remoteNetworkId: ID!,
  $requestHeaderRewrites: [KeyValueInputObject!],
  $securityPolicyId: ID,
  $tags: [TagInput!],
  $upstream: WebAppUpstreamInput!
) {
  webAppResourceCreate(
    accessPolicy: $accessPolicy,
    address: $address,
    alias: $alias,
    approvalMode: $approvalMode,
    approverGroupIds: $approverGroupIds,
    downstream: $downstream,
    gatewayId: $gatewayId,
    groupIds: $groupIds,
    isVisible: $isVisible,
    name: $name,
    protocols: $protocols,
    remoteNetworkId: $remoteNetworkId,
    requestHeaderRewrites: $requestHeaderRewrites,
    securityPolicyId: $securityPolicyId,
    tags: $tags,
    upstream: $upstream
  ) {
    ok
    error
    entity {
      ...WebAppResourceFragment
    }
  }
}
```

##### Variables

```json
{
  "accessPolicy": null,
  "address": "192.168.1.100",
  "alias": "example",
  "approvalMode": "MANUAL",
  "approverGroupIds": ["R3JvdXA6MQ"],
  "downstream": WebAppDownstreamInput,
  "gatewayId": "abc123xyz789",
  "groupIds": ["R3JvdXA6MQ"],
  "isVisible": true,
  "name": "Example Name",
  "protocols": null,
  "remoteNetworkId": "TmV0d29yazox",
  "requestHeaderRewrites": [""],
  "securityPolicyId": "abc123xyz789",
  "tags": [TagInput],
  "upstream": WebAppUpstreamInput
}
```

##### Response

```json
{
  "data": {
    "webAppResourceCreate": {
      "ok": true,
      "error": "example",
      "entity": WebAppResource
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `webAppResourceUpdate`

##### Response

Returns a [`WebAppResourceUpdateMutation!`](/content/docs/api#definition-WebAppResourceUpdateMutation/index.html)

##### Arguments

#### Example

##### Query

```gql
mutation webAppResourceUpdate(
  $accessPolicy: AccessPolicyInput,
  $addedApproverGroupIds: [ID!],
  $addedGroupIds: [ID],
  $address: String,
  $alias: String,
  $approvalMode: AccessApprovalMode,
  $approverGroupIds: [ID!],
  $downstream: WebAppDownstreamInput,
  $gatewayId: ID,
  $groupIds: [ID],
  $id: ID!,
  $isActive: Boolean,
  $isVisible: Boolean,
  $name: String,
  $protocols: ProtocolsInput,
  $remoteNetworkId: ID,
  $removedApproverGroupIds: [ID!],
  $removedGroupIds: [ID],
  $requestHeaderRewrites: [KeyValueInputObject!],
  $securityPolicyId: ID,
  $tags: [TagInput!],
  $upstream: WebAppUpstreamInput
) {
  webAppResourceUpdate(
    accessPolicy: $accessPolicy,
    addedApproverGroupIds: $addedApproverGroupIds,
    addedGroupIds: $addedGroupIds,
    address: $address,
    alias: $alias,
    approvalMode: $approvalMode,
    approverGroupIds: $approverGroupIds,
    downstream: $downstream,
    gatewayId: $gatewayId,
    groupIds: $groupIds,
    id: $id,
    isActive: $isActive,
    isVisible: $isVisible,
    name: $name,
    protocols: $protocols,
    remoteNetworkId: $remoteNetworkId,
    removedApproverGroupIds: $removedApproverGroupIds,
    removedGroupIds: $removedGroupIds,
    requestHeaderRewrites: $requestHeaderRewrites,
    securityPolicyId: $securityPolicyId,
    tags: $tags,
    upstream: $upstream
  ) {
    ok
    error
    entity {
      ...WebAppResourceFragment
    }
  }
}
```

##### Variables

##### Response

```json
{
  "data": {
    "webAppResourceUpdate": {
      "ok": true,
      "error": "example",
      "entity": WebAppResource
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `x509CertificateAuthorityCreate`

##### Response

Returns a [`X509CertificateAuthorityCreateMutation!`](/content/docs/api#definition-X509CertificateAuthorityCreateMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `certificate` \- [`String!`](/content/docs/api#definition-String/index.html) | The X509 certificate in PEM format. |
| `name` \- [`String!`](/content/docs/api#definition-String/index.html) | The name of the Certificate Authority. |

#### Example

##### Query

```gql
mutation x509CertificateAuthorityCreate(
  $certificate: String!,
  $name: String!
) {
  x509CertificateAuthorityCreate(
    certificate: $certificate,
    name: $name
  ) {
    ok
    error
    entity {
      ...X509CertificateAuthorityFragment
    }
  }
}
```

##### Variables

```json
{"certificate": "example", "name": "Example Name"}
```

##### Response

```json
{
  "data": {
    "x509CertificateAuthorityCreate": {
      "ok": true,
      "error": "example",
      "entity": X509CertificateAuthority
    }
  }
}
```

[Mutations](/content/docs/api#group-Operations-Mutations/index.html)

## `x509CertificateAuthorityDelete`

##### Response

Returns a [`X509CertificateAuthorityDeleteMutation!`](/content/docs/api#definition-X509CertificateAuthorityDeleteMutation/index.html)

##### Arguments

| Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the entity to delete. |

#### Example

##### Query

```gql
mutation x509CertificateAuthorityDelete($id: ID!) {
  x509CertificateAuthorityDelete(id: $id) {
    ok
    error
  }
}
```

##### Variables

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

##### Response

```json
{"data": {"x509CertificateAuthorityDelete": {"ok": true, "error": "example"}}}
```

# Types

## AccessApprovalMode

##### Values

| Enum Value | Description |
| --- | --- |
| `MANUAL` |  |
| `AUTOMATIC` |  |

##### Example

```gql
"MANUAL"
```

[Types](/content/docs/api#group-Types/index.html)

## AccessConnection

##### Fields

| Field Name | Description |
| --- | --- |
| `pageInfo` \- [`PageInfo!`](/content/docs/api#definition-PageInfo/index.html) | Pagination data for this connection. |
| `edges` \- [`[AccessEdge!]!`](/content/docs/api#definition-AccessEdge/index.html) | Contains the nodes in this connection. |
| `totalCount` \- [`Int!`](/content/docs/api#definition-Int/index.html) | A total count of items in the connection. |

##### Example

```json
{
  "pageInfo": PageInfo,
  "edges": [AccessEdge],
  "totalCount": 10
}
```

[Types](/content/docs/api#group-Types/index.html)

## AccessEdge

##### Description

A Relay edge containing a `Access` and its cursor.

##### Fields

| Field Name | Description |
| --- | --- |
| `node` \- [`Principal!`](/content/docs/api#definition-Principal/index.html) | The item at the end of the edge. |
| `cursor` \- [`String!`](/content/docs/api#definition-String/index.html) | A cursor for use in pagination |
| `securityPolicy` \- [`SecurityPolicy`](/content/docs/api#definition-SecurityPolicy/index.html) | The Security Policy directly assigned to this access edge. |
| `expiresAt` \- [`DateTime`](/content/docs/api#definition-DateTime/index.html) | The timestamp at which the access edge expires. |
| `usageBasedAutolockDurationDays` \- [`Int`](/content/docs/api#definition-Int/index.html) | The usage-based auto-lock duration configured on the edge (in days). Use `accessPolicy` instead. |
| `accessPolicy` \- [`AccessPolicy`](/content/docs/api#definition-AccessPolicy/index.html) | The access policy configured on the edge. |
| `approvalMode` \- [`AccessApprovalMode`](/content/docs/api#definition-AccessApprovalMode/index.html) | The approval mode configured on the edge. |

##### Example

```json
{
  "node": Group,
  "cursor": "example",
  "securityPolicy": SecurityPolicy,
  "expiresAt": "2024-12-31T23:59:59.000Z",
  "usageBasedAutolockDurationDays": 12345,
  "accessPolicy": AccessPolicy,
  "approvalMode": "MANUAL"
}
```

[Types](/content/docs/api#group-Types/index.html)

## AccessFilterInput

##### Fields

| Input Field | Description |
| --- | --- |
| `principalType` \- [`PrincipleTypeFilterOperatorInput`](/content/docs/api#definition-PrincipleTypeFilterOperatorInput/index.html) |  |

##### Example

```json
{"principalType": PrincipleTypeFilterOperatorInput}
```

[Types](/content/docs/api#group-Types/index.html)

## AccessInput

##### Fields

| Input Field | Description |
| --- | --- |
| `principalId` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the principal (Group or Service Account) whose access is being configured. |
| `securityPolicyId` \- [`ID`](/content/docs/api#definition-ID/index.html) | 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`](/content/docs/api#definition-DateTime/index.html) | 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. |
| `accessPolicy` \- [`AccessPolicyInput`](/content/docs/api#definition-AccessPolicyInput/index.html) | The access policy configured on the edge. If unspecified, the access edge's existing access policy remains unchanged. If null, the access edge's existing access policy is removed. This value should be null when the principal is a Service Account. |
| `approvalMode` \- [`AccessApprovalMode`](/content/docs/api#definition-AccessApprovalMode/index.html) | The approval mode configured on the edge. If unspecified or null, the access edge's existing approval mode remains unchanged. This value should be null when the principal is a Service Account. |

##### Example

```json
{
  "principalId": "abc123xyz789",
  "securityPolicyId": "abc123xyz789",
  "expiresAt": "2024-12-31T23:59:59.000Z",
  "accessPolicy": AccessPolicyInput,
  "approvalMode": "MANUAL"
}
```

[Types](/content/docs/api#group-Types/index.html)

## AccessMode

##### Values

| Enum Value | Description |
| --- | --- |
| `MANUAL` |  |
| `AUTO_LOCK` |  |
| `ACCESS_REQUEST` |  |

##### Example

```gql
"MANUAL"
```

[Types](/content/docs/api#group-Types/index.html)

## AccessPolicy

##### Fields

| Field Name | Description |
| --- | --- |
| `mode` \- [`AccessMode!`](/content/docs/api#definition-AccessMode/index.html) | The access mode configured on the Resource. |
| `durationSeconds` \- [`Int`](/content/docs/api#definition-Int/index.html) | The access duration configured on the Resource (in seconds). |

##### Example

```json
{"mode": "MANUAL", "durationSeconds": 12345}
```

[Types](/content/docs/api#group-Types/index.html)

## AccessPolicyInput

##### Fields

| Input Field | Description |
| --- | --- |
| `mode` \- [`AccessMode!`](/content/docs/api#definition-AccessMode/index.html) | The mode for the access policy. |
| `durationSeconds` \- [`Int`](/content/docs/api#definition-Int/index.html) | The duration for the access policy (in seconds). |

##### Example

```json
{"mode": "MANUAL", "durationSeconds": 12345}
```

[Types](/content/docs/api#group-Types/index.html)

## AccessRequest

##### Fields

| Field Name | Description |
| --- | --- |
| `reason` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `requestedAt` \- [`DateTime!`](/content/docs/api#definition-DateTime/index.html) |  |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the object |
| `user` \- [`User!`](/content/docs/api#definition-User/index.html) | The User who makes this Access Request. |
| `resource` \- [`Resource!`](/content/docs/api#definition-Resource/index.html) | The Resource to which the user is requesting access. |
| `status` \- [`AccessRequestStatus!`](/content/docs/api#definition-AccessRequestStatus/index.html) | The status of the Access Request. |

##### Example

```json
{
  "reason": "example",
  "requestedAt": "2024-01-01T00:00:00.000Z",
  "id": "YWJjMTIzeHl6Nzg5",
  "user": User,
  "resource": Resource,
  "status": "PENDING"
}
```

[Types](/content/docs/api#group-Types/index.html)

## AccessRequestApproveMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |

##### Example

```json
{"ok": true, "error": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## AccessRequestConnection

##### Fields

| Field Name | Description |
| --- | --- |
| `pageInfo` \- [`PageInfo!`](/content/docs/api#definition-PageInfo/index.html) | Pagination data for this connection. |
| `edges` \- [`[AccessRequestEdge!]!`](/content/docs/api#definition-AccessRequestEdge/index.html) | Contains the nodes in this connection. |
| `totalCount` \- [`Int!`](/content/docs/api#definition-Int/index.html) | A total count of items in the connection. |

##### Example

```json
{
  "pageInfo": PageInfo,
  "edges": [AccessRequestEdge],
  "totalCount": 10
}
```

[Types](/content/docs/api#group-Types/index.html)

## AccessRequestEdge

##### Description

A Relay edge containing a `AccessRequest` and its cursor.

##### Fields

| Field Name | Description |
| --- | --- |
| `node` \- [`AccessRequest!`](/content/docs/api#definition-AccessRequest/index.html) | The item at the end of the edge. |
| `cursor` \- [`String!`](/content/docs/api#definition-String/index.html) | A cursor for use in pagination |

##### Example

```json
{"node": AccessRequest, "cursor": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## AccessRequestFilterInput

##### Fields

| Input Field | Description |
| --- | --- |
| `userId` \- [`UserIdFilterOperationInput`](/content/docs/api#definition-UserIdFilterOperationInput/index.html) |  |
| `resourceId` \- [`ResourceIdFilterOperationInput`](/content/docs/api#definition-ResourceIdFilterOperationInput/index.html) |  |
| `status` \- [`AccessRequestStatusFilterOperatorInput`](/content/docs/api#definition-AccessRequestStatusFilterOperatorInput/index.html) |  |

##### Example

```json
{
  "userId": UserIdFilterOperationInput,
  "resourceId": ResourceIdFilterOperationInput,
  "status": AccessRequestStatusFilterOperatorInput
}
```

[Types](/content/docs/api#group-Types/index.html)

## AccessRequestRejectMutation

##### Fields

##### Example

```json
{"ok": true, "error": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## AccessRequestStatus

##### Values

| Enum Value | Description |
| --- | --- |
| `PENDING` |  |
| `APPROVED` |  |
| `REJECTED` |  |

##### Example

```gql
"PENDING"
```

[Types](/content/docs/api#group-Types/index.html)

## AccessRequestStatusFilterOperatorInput

##### Description

Filter input object for a AccessRequestStatus 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` \- [`[AccessRequestStatus!]`](/content/docs/api#definition-AccessRequestStatus/index.html) |  |

##### Example

```json
{"in": ["PENDING"]}
```

[Types](/content/docs/api#group-Types/index.html)

## AddressType

##### Values

| Enum Value | Description |
| --- | --- |
| `IP` |  |
| `DNS` |  |

##### Example

```gql
"IP"
```

[Types](/content/docs/api#group-Types/index.html)

## BasePostureCheck

##### Fields

| Field Name | Description |
| --- | --- |
| `isSatisfied` \- [`PostureStatus!`](/content/docs/api#definition-PostureStatus/index.html) | Whether the device satisfies this posture check. |

##### Possible Types

| BasePostureCheck Types |
| --- |
| [`DevicePropertyPostureCheck`](/content/docs/api#definition-DevicePropertyPostureCheck/index.html) |
| [`OsVersionPostureCheck`](/content/docs/api#definition-OsVersionPostureCheck/index.html) |

##### Example

```json
{"isSatisfied": "YES"}
```

[Types](/content/docs/api#group-Types/index.html)

## BaseVerification

##### Fields

| Field Name | Description |
| --- | --- |
| `isVerified` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the device is verified by this trust provider. |

##### Possible Types

| BaseVerification Types |
| --- |
| [`TrustProviderVerification`](/content/docs/api#definition-TrustProviderVerification/index.html) |
| [`ManualVerification`](/content/docs/api#definition-ManualVerification/index.html) |

##### Example

```json
{"isVerified": true}
```

[Types](/content/docs/api#group-Types/index.html)

## Boolean

##### Description

The `Boolean` scalar type represents `true` or `false`.

##### Example

```json
true
```

[Types](/content/docs/api#group-Types/index.html)

## 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`](/content/docs/api#definition-Boolean/index.html) |  |

##### Example

```json
{"eq": true}
```

[Types](/content/docs/api#group-Types/index.html)

## CertificateAuthority

##### Types

| Union Types |
| --- |
| [`X509CertificateAuthority`](/content/docs/api#definition-X509CertificateAuthority/index.html) |
| [`SSHCertificateAuthority`](/content/docs/api#definition-SSHCertificateAuthority/index.html) |

##### Example

```gql
X509CertificateAuthority
```

[Types](/content/docs/api#group-Types/index.html)

## CertificateAuthorityConnection

##### Fields

| Field Name | Description |
| --- | --- |
| `pageInfo` \- [`PageInfo!`](/content/docs/api#definition-PageInfo/index.html) | Pagination data for this connection. |
| `edges` \- [`[CertificateAuthorityEdge!]!`](/content/docs/api#definition-CertificateAuthorityEdge/index.html) | Contains the nodes in this connection. |
| `totalCount` \- [`Int!`](/content/docs/api#definition-Int/index.html) | A total count of items in the connection. |

##### Example

```json
{
  "pageInfo": PageInfo,
  "edges": [CertificateAuthorityEdge],
  "totalCount": 10
}
```

[Types](/content/docs/api#group-Types/index.html)

## CertificateAuthorityEdge

##### Description

A Relay edge containing a `CertificateAuthority` and its cursor.

##### Fields

| Field Name | Description |
| --- | --- |
| `node` \- [`CertificateAuthority!`](/content/docs/api#definition-CertificateAuthority/index.html) | The item at the end of the edge. |
| `cursor` \- [`String!`](/content/docs/api#definition-String/index.html) | A cursor for use in pagination |

##### Example

```json
{"node": X509CertificateAuthority, "cursor": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## Connector

##### Fields

| Field Name | Description |
| --- | --- |
| `createdAt` \- [`DateTime!`](/content/docs/api#definition-DateTime/index.html) |  |
| `updatedAt` \- [`DateTime!`](/content/docs/api#definition-DateTime/index.html) |  |
| `lastHeartbeatAt` \- [`DateTime`](/content/docs/api#definition-DateTime/index.html) |  |
| `hostname` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the object |
| `name` \- [`String!`](/content/docs/api#definition-String/index.html) | The Connector's name. |
| `remoteNetwork` \- [`RemoteNetwork!`](/content/docs/api#definition-RemoteNetwork/index.html) | The Remote Network this Connector belongs to. |
| `state` \- [`ConnectorState!`](/content/docs/api#definition-ConnectorState/index.html) |  |
| `hasStatusNotificationsEnabled` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Indicates whether status notifications are enabled for the connector. |
| `version` \- [`String`](/content/docs/api#definition-String/index.html) | The Connector's version. |
| `publicIP` \- [`String`](/content/docs/api#definition-String/index.html) | The Connector's public IP address. |
| `privateIPs` \- [`[String!]!`](/content/docs/api#definition-String/index.html) | The Connector's private IP address. |

##### Example

```json
{
  "createdAt": "2024-01-01T00:00:00.000Z",
  "updatedAt": "2024-01-15T00:00:00.000Z",
  "lastHeartbeatAt": "2024-01-01T00:00:00.000Z",
  "hostname": "server.example.com",
  "id": "YWJjMTIzeHl6Nzg5",
  "name": "Example Name",
  "remoteNetwork": RemoteNetwork,
  "state": "ALIVE",
  "hasStatusNotificationsEnabled": true,
  "version": "1.0.0",
  "publicIP": "192.168.1.1",
  "privateIPs": ["192.168.1.1"]
}
```

[Types](/content/docs/api#group-Types/index.html)

## ConnectorConnection

##### Fields

| Field Name | Description |
| --- | --- |
| `pageInfo` \- [`PageInfo!`](/content/docs/api#definition-PageInfo/index.html) | Pagination data for this connection. |
| `edges` \- [`[ConnectorEdge!]!`](/content/docs/api#definition-ConnectorEdge/index.html) | Contains the nodes in this connection. |
| `totalCount` \- [`Int!`](/content/docs/api#definition-Int/index.html) | A total count of items in the connection. |

##### Example

```json
{
  "pageInfo": PageInfo,
  "edges": [ConnectorEdge],
  "totalCount": 10
}
```

[Types](/content/docs/api#group-Types/index.html)

## ConnectorCreateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`Connector`](/content/docs/api#definition-Connector/index.html) | The Connector that was created. |

##### Example

```json
{"ok": true, "error": "example", "entity": Connector}
```

[Types](/content/docs/api#group-Types/index.html)

## ConnectorDeleteMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Records whether the delete mutation was successfully completed |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error was encountered causing the delete mutation to fail. |

##### Example

```json
{"ok": true, "error": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## ConnectorEdge

##### Description

A Relay edge containing a `Connector` and its cursor.

##### Fields

| Field Name | Description |
| --- | --- |
| `node` \- [`Connector!`](/content/docs/api#definition-Connector/index.html) | The item at the end of the edge. |
| `cursor` \- [`String!`](/content/docs/api#definition-String/index.html) | A cursor for use in pagination |

##### Example

```json
{"node": Connector, "cursor": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## ConnectorFilterInput

##### Fields

| Input Field | Description |
| --- | --- |
| `name` \- [`StringFilterOperatorInput`](/content/docs/api#definition-StringFilterOperatorInput/index.html) |  |
| `state` \- [`ConnectorStateFilterOperatorInput`](/content/docs/api#definition-ConnectorStateFilterOperatorInput/index.html) |  |

##### Example

```json
{
  "name": StringFilterOperatorInput,
  "state": ConnectorStateFilterOperatorInput
}
```

[Types](/content/docs/api#group-Types/index.html)

## ConnectorGenerateTokensMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `connectorTokens` \- [`ConnectorTokens`](/content/docs/api#definition-ConnectorTokens/index.html) | Generated tokens to use for this Connector. |

##### Example

```json
{
  "ok": true,
  "error": "example",
  "connectorTokens": ConnectorTokens
}
```

[Types](/content/docs/api#group-Types/index.html)

## ConnectorState

##### Values

| Enum Value | Description |
| --- | --- |
| `ALIVE` |  |
| `DEAD_NO_HEARTBEAT` |  |
| `DEAD_HEARTBEAT_TOO_OLD` |  |
| `DEAD_NO_RELAYS` |  |

##### Example

```gql
"ALIVE"
```

[Types](/content/docs/api#group-Types/index.html)

## 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!]`](/content/docs/api#definition-ConnectorState/index.html) |  |

##### Example

```json
{"in": ["ALIVE"]}
```

[Types](/content/docs/api#group-Types/index.html)

## ConnectorTokens

##### Fields

| Field Name | Description |
| --- | --- |
| `accessToken` \- [`String!`](/content/docs/api#definition-String/index.html) | Access token to use for this Connector. |
| `refreshToken` \- [`String!`](/content/docs/api#definition-String/index.html) | Refresh token to use for this Connector. |

##### Example

```json
{
  "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9",
  "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"
}
```

[Types](/content/docs/api#group-Types/index.html)

## ConnectorUpdateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`Connector`](/content/docs/api#definition-Connector/index.html) | The Connector being updated. |

##### Example

```json
{"ok": true, "error": "example", "entity": Connector}
```

[Types](/content/docs/api#group-Types/index.html)

## ContentCategoryConfig

##### Fields

| Field Name | Description |
| --- | --- |
| `blockGambling` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether gambling related sites are blocked |
| `blockDating` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether dating related sites are blocked |
| `blockAdultContent` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether all sexually explicit and adult content are blocked |
| `blockSocialMedia` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether all social networks are blocked (omits messaging apps) |
| `blockGames` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether online gaming websites, online gaming apps and online gaming networks are blocked |
| `blockStreaming` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether video streaming services like YouTube, Netflix, Disney+ and more are blocked |
| `blockPiracy` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether P2P websites, protocols, and copyright-infringing streaming websites are blocked |
| `enableYoutubeRestrictedMode` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether filtering mature videos on YouTube, block embedded mature videos, and hiding all comments are enabled |
| `enableSafeSearch` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether filtering explicit results on all major search engines and blocking search engines without safe search is enabled |

##### Example

```json
{
  "blockGambling": true,
  "blockDating": true,
  "blockAdultContent": true,
  "blockSocialMedia": true,
  "blockGames": true,
  "blockStreaming": true,
  "blockPiracy": true,
  "enableYoutubeRestrictedMode": true,
  "enableSafeSearch": true
}
```

[Types](/content/docs/api#group-Types/index.html)

## ContentCategoryConfigInput

##### Fields

| Input Field | Description |
| --- | --- |
| `blockGambling` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether gambling related sites are blocked |
| `blockDating` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether dating related sites are blocked |
| `blockAdultContent` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether all sexually explicit and adult content are blocked |
| `blockSocialMedia` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether all social networks are blocked (omits messaging apps) |
| `blockGames` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether online gaming websites, online gaming apps and online gaming networks are blocked |
| `blockStreaming` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether video streaming services like YouTube, Netflix, Disney+ and more are blocked |
| `blockPiracy` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether P2P websites, protocols, and copyright-infringing streaming websites are blocked |
| `enableYoutubeRestrictedMode` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether filtering mature videos on YouTube, block embedded mature videos, and hiding all comments are enabled |
| `enableSafeSearch` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether filtering explicit results on all major search engines and blocking search engines without safe search is enabled |

##### Example

[Types](/content/docs/api#group-Types/index.html)

## DateTime

##### Description

The `DateTime` scalar type represents a DateTime value as specified by [iso8601](https://en.wikipedia.org/wiki/ISO_8601).

##### Example

```gql
"2024-01-01T00:00:00.000Z"
```

[Types](/content/docs/api#group-Types/index.html)

## Device

##### Fields

| Field Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the object |
| `name` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `lastFailedLoginAt` \- [`DateTime`](/content/docs/api#definition-DateTime/index.html) |  |
| `osVersion` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `hardwareModel` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `hostname` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `username` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `serialNumber` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `user` \- [`User!`](/content/docs/api#definition-User/index.html) | The User this Device belongs to. |
| `lastConnectedAt` \- [`DateTime`](/content/docs/api#definition-DateTime/index.html) | The last connected timestamp is no longer available. |
| `osName` \- [`DeviceOsName`](/content/docs/api#definition-DeviceOsName/index.html) | The name of this Device's operating system. |
| `deviceType` \- [`DeviceType!`](/content/docs/api#definition-DeviceType/index.html) | The Device's type, e.g. LAPTOP, DESKTOP, or MOBILE. |
| `activeState` \- [`DeviceActiveState!`](/content/docs/api#definition-DeviceActiveState/index.html) | The Device's active state. |
| `lastSuccessfulLoginAt` \- [`DateTime`](/content/docs/api#definition-DateTime/index.html) | Timestamp of the most recent successful Network Sign In from a client device. Updated only on sign-in from a fully logged-out state; resource policy authentication events do not affect this value. |
| `isTrusted` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) |  |
| `clientVersion` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `manufacturerName` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `internetSecurityConfiguration` \- [`String!`](/content/docs/api#definition-String/index.html) | The Device's internet security configuration. |

##### Example

```json
{
  "id": "YWJjMTIzeHl6Nzg5",
  "name": "Example Name",
  "lastFailedLoginAt": "2024-01-01T00:00:00.000Z",
  "osVersion": "1.0.0",
  "hardwareModel": "example",
  "hostname": "server.example.com",
  "username": "johndoe",
  "serialNumber": "example",
  "user": User,
  "lastConnectedAt": "2024-01-01T00:00:00.000Z",
  "osName": "IPADOS",
  "deviceType": "GENERIC",
  "activeState": "ACTIVE",
  "lastSuccessfulLoginAt": "2024-01-01T00:00:00.000Z",
  "isTrusted": true,
  "clientVersion": "1.0.0",
  "manufacturerName": "example",
  "internetSecurityConfiguration": "example"
}
```

[Types](/content/docs/api#group-Types/index.html)

## DeviceActiveState

##### Description

The Device's active state.

##### Values

| Enum Value | Description |
| --- | --- |
| `ACTIVE` |  |
| `ARCHIVED` |  |
| `BLOCKED` |  |

##### Example

```gql
"ACTIVE"
```

[Types](/content/docs/api#group-Types/index.html)

## 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!]`](/content/docs/api#definition-DeviceActiveState/index.html) |  |

##### Example

```json
{"in": ["ACTIVE"]}
```

[Types](/content/docs/api#group-Types/index.html)

## DeviceArchiveMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`Device`](/content/docs/api#definition-Device/index.html) | The Device being archived. |

##### Example

```json
{"ok": true, "error": "example", "entity": Device}
```

[Types](/content/docs/api#group-Types/index.html)

## DeviceBlockMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`Device`](/content/docs/api#definition-Device/index.html) | The Device being blocked. |

##### Example

```json
{"ok": true, "error": "example", "entity": Device}
```

[Types](/content/docs/api#group-Types/index.html)

## DeviceConnection

##### Fields

| Field Name | Description |
| --- | --- |
| `pageInfo` \- [`PageInfo!`](/content/docs/api#definition-PageInfo/index.html) | Pagination data for this connection. |
| `edges` \- [`[DeviceEdge!]!`](/content/docs/api#definition-DeviceEdge/index.html) | Contains the nodes in this connection. |
| `totalCount` \- [`Int!`](/content/docs/api#definition-Int/index.html) | A total count of items in the connection. |

##### Example

```json
{
  "pageInfo": PageInfo,
  "edges": [DeviceEdge],
  "totalCount": 10
}
```

[Types](/content/docs/api#group-Types/index.html)

## DeviceEdge

##### Description

A Relay edge containing a `Device` and its cursor.

##### Fields

| Field Name | Description |
| --- | --- |
| `node` \- [`Device!`](/content/docs/api#definition-Device/index.html) | The item at the end of the edge. |
| `cursor` \- [`String!`](/content/docs/api#definition-String/index.html) | A cursor for use in pagination |

##### Example

```json
{"node": Device, "cursor": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## DeviceFilterInput

##### Fields

| Input Field | Description |
| --- | --- |
| `isTrusted` \- [`BooleanFilterOperatorInput`](/content/docs/api#definition-BooleanFilterOperatorInput/index.html) |  |
| `serialNumber` \- [`StringFilterOperatorInput`](/content/docs/api#definition-StringFilterOperatorInput/index.html) |  |
| `activeState` \- [`DeviceActiveStateFilterOperatorInput`](/content/docs/api#definition-DeviceActiveStateFilterOperatorInput/index.html) |  |
| `userId` \- [`UserIdFilterOperationInput`](/content/docs/api#definition-UserIdFilterOperationInput/index.html) |  |

##### Example

```json
{
  "isTrusted": BooleanFilterOperatorInput,
  "serialNumber": StringFilterOperatorInput,
  "activeState": DeviceActiveStateFilterOperatorInput,
  "userId": UserIdFilterOperationInput
}
```

[Types](/content/docs/api#group-Types/index.html)

## DeviceOsName

##### Description

The name of the Device's operating system.

##### Values

| Enum Value | Description |
| --- | --- |
| `IPADOS` |  |
| `IOS` |  |
| `MAC_OS` |  |
| `ANDROID` |  |
| `CHROME_OS` |  |
| `WINDOWS` |  |
| `LINUX` |  |

##### Example

```gql
"IPADOS"
```

[Types](/content/docs/api#group-Types/index.html)

## DevicePosture

##### Fields

| Field Name | Description |
| --- | --- |
| `hardDriveEncryption` \- [`DevicePropertyPostureCheck`](/content/docs/api#definition-DevicePropertyPostureCheck/index.html) | Hard drive encryption posture check. |
| `screenLockPasscode` \- [`DevicePropertyPostureCheck`](/content/docs/api#definition-DevicePropertyPostureCheck/index.html) | Screen lock passcode posture check. |
| `firewall` \- [`DevicePropertyPostureCheck`](/content/docs/api#definition-DevicePropertyPostureCheck/index.html) | Firewall posture check. |
| `biometric` \- [`DevicePropertyPostureCheck`](/content/docs/api#definition-DevicePropertyPostureCheck/index.html) | Biometric posture check. |
| `antivirus` \- [`DevicePropertyPostureCheck`](/content/docs/api#definition-DevicePropertyPostureCheck/index.html) | Antivirus posture check. |
| `osVersion` \- [`OsVersionPostureCheck`](/content/docs/api#definition-OsVersionPostureCheck/index.html) | OS version posture check. |
| `crowdstrike` \- [`TrustProviderVerification`](/content/docs/api#definition-TrustProviderVerification/index.html) | CrowdStrike integration verification. Null if the platform doesn't support this verification method or if the integration isn't configured. |
| `jamf` \- [`TrustProviderVerification`](/content/docs/api#definition-TrustProviderVerification/index.html) | Jamf integration verification. Null if the platform doesn't support this verification method or if the integration isn't configured. |
| `kandji` \- [`TrustProviderVerification`](/content/docs/api#definition-TrustProviderVerification/index.html) | Kandji integration verification. Null if the platform doesn't support this verification method or if the integration isn't configured. Kandji is now Iru, please use `iru` instead. |
| `iru` \- [`TrustProviderVerification`](/content/docs/api#definition-TrustProviderVerification/index.html) | Iru (previously Kandji) integration verification. Null if the platform doesn't support this verification method or if the integration isn't configured. |
| `inTune` \- [`TrustProviderVerification`](/content/docs/api#definition-TrustProviderVerification/index.html) | Intune integration verification. Null if the platform doesn't support this verification method or if the integration isn't configured. |
| `sentinelOne` \- [`TrustProviderVerification`](/content/docs/api#definition-TrustProviderVerification/index.html) | SentinelOne integration verification. Null if the platform doesn't support this verification method or if the integration isn't configured. |
| `onePassword` \- [`TrustProviderVerification`](/content/docs/api#definition-TrustProviderVerification/index.html) | 1Password integration verification. Null if the platform doesn't support this verification method or if the integration isn't configured. |
| `manualVerification` \- [`ManualVerification`](/content/docs/api#definition-ManualVerification/index.html) | Manual verification status of the device. Null if the device isn't verified manually. |

##### Example

```json
{
  "hardDriveEncryption": DevicePropertyPostureCheck,
  "screenLockPasscode": DevicePropertyPostureCheck,
  "firewall": DevicePropertyPostureCheck,
  "biometric": DevicePropertyPostureCheck,
  "antivirus": DevicePropertyPostureCheck,
  "osVersion": OsVersionPostureCheck,
  "crowdstrike": TrustProviderVerification,
  "jamf": TrustProviderVerification,
  "kandji": TrustProviderVerification,
  "iru": TrustProviderVerification,
  "inTune": TrustProviderVerification,
  "sentinelOne": TrustProviderVerification,
  "onePassword": TrustProviderVerification,
  "manualVerification": ManualVerification
}
```

[Types](/content/docs/api#group-Types/index.html)

## DevicePropertyPostureCheck

##### Fields

| Field Name | Description |
| --- | --- |
| `isSatisfied` \- [`PostureStatus!`](/content/docs/api#definition-PostureStatus/index.html) | Whether the device satisfies this posture check. |
| `detected` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether this property was detected as enabled on the device. |

##### Example

```json
{"isSatisfied": "YES", "detected": true}
```

[Types](/content/docs/api#group-Types/index.html)

## DeviceType

##### Description

The Device's type, e.g. LAPTOP, DESKTOP, or MOBILE.

##### Values

| Enum Value | Description |
| --- | --- |
| `GENERIC` |  |
| `DESKTOP` |  |
| `LAPTOP` |  |
| `TABLET` |  |
| `MOBILE` |  |

##### Example

```gql
"GENERIC"
```

[Types](/content/docs/api#group-Types/index.html)

## DeviceUnarchiveMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`Device`](/content/docs/api#definition-Device/index.html) | The Device being unarchived. |

##### Example

```json
{"ok": true, "error": "example", "entity": Device}
```

[Types](/content/docs/api#group-Types/index.html)

## DeviceUnblockMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`Device`](/content/docs/api#definition-Device/index.html) | The Device being unblocked. |

##### Example

```json
{"ok": true, "error": "example", "entity": Device}
```

[Types](/content/docs/api#group-Types/index.html)

## DeviceUpdateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`Device`](/content/docs/api#definition-Device/index.html) | The Device being updated. |

##### Example

```json
{"ok": true, "error": "example", "entity": Device}
```

[Types](/content/docs/api#group-Types/index.html)

## DnsFilteringProfile

##### Fields

| Field Name | Description |
| --- | --- |
| `name` \- [`String!`](/content/docs/api#definition-String/index.html) |  |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the DNS filtering profile |
| `priority` \- [`Float!`](/content/docs/api#definition-Float/index.html) | The priority of the profile, the lower the value the higher the priority, priority (1) will be higher than priority (2) |
| `fallbackMethod` \- [`DohFallbackMethod!`](/content/docs/api#definition-DohFallbackMethod/index.html) | The fallback method of the profile |
| `groups` \- [`GroupConnection!`](/content/docs/api#definition-GroupConnection/index.html) | The list of groups assigned to this DNS filtering profile. |
| ##### Arguments<br>###### `before` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `after` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `first` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `last` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `filter` \- [`GroupFilterInput`](/content/docs/api\#definition-GroupFilterInput/index.html) |
| `allowedDomains` \- [`[String!]!`](/content/docs/api#definition-String/index.html) | List of allowed domains |
| `deniedDomains` \- [`[String!]!`](/content/docs/api#definition-String/index.html) | List of denied domains |
| `contentCategoryConfig` \- [`ContentCategoryConfig!`](/content/docs/api#definition-ContentCategoryConfig/index.html) | The content categories configuration |
| `securityCategoryConfig` \- [`SecurityCategoryConfig!`](/content/docs/api#definition-SecurityCategoryConfig/index.html) | The security categories configuration |
| `privacyCategoryConfig` \- [`PrivacyCategoryConfig!`](/content/docs/api#definition-PrivacyCategoryConfig/index.html) | The blocked privacy categories configuration |

##### Example

```json
{
  "name": "Example Name",
  "id": "YWJjMTIzeHl6Nzg5",
  "priority": 123.45,
  "fallbackMethod": "AUTO",
  "groups": GroupConnection,
  "allowedDomains": ["example.com"],
  "deniedDomains": ["example.com"],
  "contentCategoryConfig": ContentCategoryConfig,
  "securityCategoryConfig": SecurityCategoryConfig,
  "privacyCategoryConfig": PrivacyCategoryConfig
}
```

[Types](/content/docs/api#group-Types/index.html)

## DnsFilteringProfileCreateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`DnsFilteringProfile`](/content/docs/api#definition-DnsFilteringProfile/index.html) | The created DNS filtering profile. |

##### Example

```json
{
  "ok": true,
  "error": "example",
  "entity": DnsFilteringProfile
}
```

[Types](/content/docs/api#group-Types/index.html)

## DnsFilteringProfileDeleteMutation

##### Fields

##### Example

```json
{"ok": true, "error": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## DnsFilteringProfileMetadata

##### Fields

| Field Name | Description |
| --- | --- |
| `name` \- [`String!`](/content/docs/api#definition-String/index.html) |  |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the DNS filtering profile |
| `priority` \- [`Float!`](/content/docs/api#definition-Float/index.html) | The priority of the profile, the lower the value the higher the priority, priority (1) will be higher than priority (2) |

##### Example

```json
{"name": "Example Name", "id": "YWJjMTIzeHl6Nzg5", "priority": 123.45}
```

[Types](/content/docs/api#group-Types/index.html)

## DnsFilteringProfileUpdateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`DnsFilteringProfile`](/content/docs/api#definition-DnsFilteringProfile/index.html) | The updated DNS filtering profile. |

##### Example

```json
{
  "ok": true,
  "error": "example",
  "entity": DnsFilteringProfile
}
```

[Types](/content/docs/api#group-Types/index.html)

## DohFallbackMethod

##### Values

| Enum Value | Description |
| --- | --- |
| `AUTO` |  |
| `STRICT` |  |

##### Example

```gql
"AUTO"
```

[Types](/content/docs/api#group-Types/index.html)

## Float

##### Description

The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).

##### Example

```json
123.45
```

[Types](/content/docs/api#group-Types/index.html)

## Gateway

##### Fields

| Field Name | Description |
| --- | --- |
| `address` \- [`String!`](/content/docs/api#definition-String/index.html) |  |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the object |
| `remoteNetwork` \- [`RemoteNetwork!`](/content/docs/api#definition-RemoteNetwork/index.html) | The Remote Network this Gateway belongs to. |
| `x509CA` \- [`X509CertificateAuthority!`](/content/docs/api#definition-X509CertificateAuthority/index.html) | The X509 Certificate Authority for this Gateway. |
| `sshCA` \- [`SSHCertificateAuthority`](/content/docs/api#definition-SSHCertificateAuthority/index.html) | The SSH Certificate Authority for this Gateway. |

##### Example

```json
{
  "address": "192.168.1.100",
  "id": "YWJjMTIzeHl6Nzg5",
  "remoteNetwork": RemoteNetwork,
  "x509CA": X509CertificateAuthority,
  "sshCA": SSHCertificateAuthority
}
```

[Types](/content/docs/api#group-Types/index.html)

## GatewayConnection

##### Fields

| Field Name | Description |
| --- | --- |
| `pageInfo` \- [`PageInfo!`](/content/docs/api#definition-PageInfo/index.html) | Pagination data for this connection. |
| `edges` \- [`[GatewayEdge!]!`](/content/docs/api#definition-GatewayEdge/index.html) | Contains the nodes in this connection. |
| `totalCount` \- [`Int!`](/content/docs/api#definition-Int/index.html) | A total count of items in the connection. |

##### Example

```json
{
  "pageInfo": PageInfo,
  "edges": [GatewayEdge],
  "totalCount": 10
}
```

[Types](/content/docs/api#group-Types/index.html)

## GatewayCreateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`Gateway`](/content/docs/api#definition-Gateway/index.html) | The Gateway that was created. |

##### Example

```json
{"ok": true, "error": "example", "entity": Gateway}
```

[Types](/content/docs/api#group-Types/index.html)

## GatewayDeleteMutation

##### Fields

##### Example

```json
{"ok": true, "error": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## GatewayEdge

##### Description

A Relay edge containing a `Gateway` and its cursor.

##### Fields

| Field Name | Description |
| --- | --- |
| `node` \- [`Gateway!`](/content/docs/api#definition-Gateway/index.html) | The item at the end of the edge. |
| `cursor` \- [`String!`](/content/docs/api#definition-String/index.html) | A cursor for use in pagination |

##### Example

```json
{"node": Gateway, "cursor": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## GatewayUpdateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`Gateway`](/content/docs/api#definition-Gateway/index.html) | The Gateway being updated. |

##### Example

```json
{"ok": true, "error": "example", "entity": Gateway}
```

[Types](/content/docs/api#group-Types/index.html)

## Group

##### Fields

| Field Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the object |
| `createdAt` \- [`DateTime!`](/content/docs/api#definition-DateTime/index.html) |  |
| `updatedAt` \- [`DateTime!`](/content/docs/api#definition-DateTime/index.html) |  |
| `name` \- [`String!`](/content/docs/api#definition-String/index.html) |  |
| `originId` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `isActive` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Indicates whether the Group is active. |
| `type` \- [`GroupType!`](/content/docs/api#definition-GroupType/index.html) | The Groups type, e.g. manual or synced. |
| `users` \- [`UserConnection!`](/content/docs/api#definition-UserConnection/index.html) | Which Users are members of this Group. |
| ##### Arguments<br>###### `before` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `after` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `first` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `last` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `filter` \- [`UserFilterInput`](/content/docs/api\#definition-UserFilterInput/index.html) |
| `resources` \- [`ResourceConnection!`](/content/docs/api#definition-ResourceConnection/index.html) | Which Resources this Group contains. |
| ##### Arguments<br>###### `before` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `after` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `first` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `last` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `filter` \- [`ResourceFilterInput`](/content/docs/api\#definition-ResourceFilterInput/index.html) |
| `securityPolicy` \- [`SecurityPolicy!`](/content/docs/api#definition-SecurityPolicy/index.html) | The Security Policy assigned to the Group. |

##### Example

```json
{
  "id": "YWJjMTIzeHl6Nzg5",
  "createdAt": "2024-01-01T00:00:00.000Z",
  "updatedAt": "2024-01-15T00:00:00.000Z",
  "name": "Example Name",
  "originId": "example",
  "isActive": true,
  "type": "MANUAL",
  "users": UserConnection,
  "resources": ResourceConnection,
  "securityPolicy": SecurityPolicy
}
```

[Types](/content/docs/api#group-Types/index.html)

## GroupConnection

##### Fields

| Field Name | Description |
| --- | --- |
| `pageInfo` \- [`PageInfo!`](/content/docs/api#definition-PageInfo/index.html) | Pagination data for this connection. |
| `edges` \- [`[GroupEdge!]!`](/content/docs/api#definition-GroupEdge/index.html) | Contains the nodes in this connection. |
| `totalCount` \- [`Int!`](/content/docs/api#definition-Int/index.html) | A total count of items in the connection. |

##### Example

```json
{
  "pageInfo": PageInfo,
  "edges": [GroupEdge],
  "totalCount": 10
}
```

[Types](/content/docs/api#group-Types/index.html)

## GroupCreateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`Group`](/content/docs/api#definition-Group/index.html) | The Group that was created. |

##### Example

```json
{"ok": true, "error": "example", "entity": Group}
```

[Types](/content/docs/api#group-Types/index.html)

## GroupDeleteMutation

##### Fields

##### Example

```json
{"ok": true, "error": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## GroupEdge

##### Description

A Relay edge containing a `Group` and its cursor.

##### Fields

| Field Name | Description |
| --- | --- |
| `node` \- [`Group!`](/content/docs/api#definition-Group/index.html) | The item at the end of the edge. |
| `cursor` \- [`String!`](/content/docs/api#definition-String/index.html) | A cursor for use in pagination |

##### Example

```json
{"node": Group, "cursor": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## GroupFilterInput

##### Fields

| Input Field | Description |
| --- | --- |
| `name` \- [`StringFilterOperatorInput`](/content/docs/api#definition-StringFilterOperatorInput/index.html) |  |
| `type` \- [`GroupTypeFilterOperatorInput`](/content/docs/api#definition-GroupTypeFilterOperatorInput/index.html) |  |
| `isActive` \- [`BooleanFilterOperatorInput`](/content/docs/api#definition-BooleanFilterOperatorInput/index.html) |  |
| `originId` \- [`StringFilterOperatorInput`](/content/docs/api#definition-StringFilterOperatorInput/index.html) |  |

##### Example

```json
{
  "name": StringFilterOperatorInput,
  "type": GroupTypeFilterOperatorInput,
  "isActive": BooleanFilterOperatorInput,
  "originId": StringFilterOperatorInput
}
```

[Types](/content/docs/api#group-Types/index.html)

## GroupType

##### Values

| Enum Value | Description |
| --- | --- |
| `MANUAL` |  |
| `SYNCED` |  |
| `SYSTEM` |  |

##### Example

```gql
"MANUAL"
```

[Types](/content/docs/api#group-Types/index.html)

## 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!]`](/content/docs/api#definition-GroupType/index.html) |  |

##### Example

```json
{"in": ["MANUAL"]}
```

[Types](/content/docs/api#group-Types/index.html)

## GroupUpdateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`Group`](/content/docs/api#definition-Group/index.html) | The Group being updated. |

##### Example

```json
{"ok": true, "error": "example", "entity": Group}
```

[Types](/content/docs/api#group-Types/index.html)

## 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

```gql
"YWJjMTIzeHl6Nzg5"
```

[Types](/content/docs/api#group-Types/index.html)

## 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

```json
12345
```

[Types](/content/docs/api#group-Types/index.html)

## KeyValueInputObject

##### Fields

| Input Field | Description |
| --- | --- |
| `key` \- [`String!`](/content/docs/api#definition-String/index.html) | The key |
| `value` \- [`String!`](/content/docs/api#definition-String/index.html) | The value |

##### Example

```json
{"key": "sk_test_1234567890abcdef", "value": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## KeyValuePair

##### Fields

| Field Name | Description |
| --- | --- |
| `key` \- [`String!`](/content/docs/api#definition-String/index.html) |  |
| `value` \- [`String!`](/content/docs/api#definition-String/index.html) |  |

##### Example

```json
{"key": "sk_test_1234567890abcdef", "value": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## KubernetesDownstreamInput

##### Fields

| Input Field | Description |
| --- | --- |
| `port` \- [`Int!`](/content/docs/api#definition-Int/index.html) | The downstream port. The value must be between 1 and 65535 inclusive. |

##### Example

```json
{"port": 443}
```

[Types](/content/docs/api#group-Types/index.html)

## KubernetesResource

##### Fields

| Field Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) |  |
| `createdAt` \- [`DateTime!`](/content/docs/api#definition-DateTime/index.html) |  |
| `updatedAt` \- [`DateTime!`](/content/docs/api#definition-DateTime/index.html) |  |
| `name` \- [`String!`](/content/docs/api#definition-String/index.html) |  |
| `tags` \- [`[Tag!]!`](/content/docs/api#definition-Tag/index.html) | Tags associated with this entity |
| `address` \- [`ResourceAddress!`](/content/docs/api#definition-ResourceAddress/index.html) | The Resource's address. |
| `alias` \- [`String`](/content/docs/api#definition-String/index.html) | The address of the Resource's alias. |
| `protocols` \- [`ResourceProtocols!`](/content/docs/api#definition-ResourceProtocols/index.html) | How a Resource's ports are configured. |
| `isActive` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Indicates whether the Resource is active. |
| `remoteNetwork` \- [`RemoteNetwork!`](/content/docs/api#definition-RemoteNetwork/index.html) | Which Remote Network this Resource belongs to. |
| `groups` \- [`GroupConnection!`](/content/docs/api#definition-GroupConnection/index.html) | Which Groups have access to this Resource. Use `access` connection instead. |
| ##### Arguments<br>###### `before` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `after` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `first` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `last` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `filter` \- [`GroupFilterInput`](/content/docs/api\#definition-GroupFilterInput/index.html) |
| `serviceAccounts` \- [`ServiceAccountConnection!`](/content/docs/api#definition-ServiceAccountConnection/index.html) | Which Service Accounts have access to this Resource. Use `access` connection instead. |
| ##### Arguments<br>###### `before` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `after` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `first` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `last` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `filter` \- [`ServiceAccountFilterInput`](/content/docs/api\#definition-ServiceAccountFilterInput/index.html) |
| `access` \- [`AccessConnection!`](/content/docs/api#definition-AccessConnection/index.html) | Which principals have access to this Resource. |
| ##### Arguments<br>###### `filter` \- [`AccessFilterInput`](/content/docs/api\#definition-AccessFilterInput/index.html)<br>###### `before` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `after` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `first` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `last` \- [`Int`](/content/docs/api\#definition-Int/index.html) |
| `isVisible` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Indicates whether this Resource will be in the main Resource list in the Client. |
| `isBrowserShortcutEnabled` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Indicates whether this Resource will display a browser shortcut in the Client. |
| `securityPolicy` \- [`SecurityPolicy`](/content/docs/api#definition-SecurityPolicy/index.html) | Which Security Policy required to access the Resource. |
| `usageBasedAutolockDurationDays` \- [`Int`](/content/docs/api#definition-Int/index.html) | The usage-based auto-lock duration configured on the Resource (in days). Use `accessPolicy` instead. |
| `accessPolicy` \- [`AccessPolicy!`](/content/docs/api#definition-AccessPolicy/index.html) | The access policy configured on the Resource. |
| `approvalMode` \- [`AccessApprovalMode!`](/content/docs/api#definition-AccessApprovalMode/index.html) | The approval mode configured on the Resource. |
| `approverGroups` \- [`GroupConnection!`](/content/docs/api#definition-GroupConnection/index.html) | List of groups that can approve access requests for this resource. |
| ##### Arguments<br>###### `before` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `after` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `first` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `last` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `filter` \- [`GroupFilterInput`](/content/docs/api\#definition-GroupFilterInput/index.html) |
| `proxyAddress` \- [`String!`](/content/docs/api#definition-String/index.html) | The proxy address of the Kubernetes Resource. Use `gateway.address` instead. |
| `certificateAuthorityCert` \- [`String!`](/content/docs/api#definition-String/index.html) | The certificate authority certificate of the Kubernetes Resource. Use `gateway.x509_ca.certificate` instead. |
| `gateway` \- [`Gateway!`](/content/docs/api#definition-Gateway/index.html) | Which Gateway this Resource belongs to. |
| `clusterRef` \- [`String`](/content/docs/api#definition-String/index.html) | The cluster configuration name to reference. When null, the Gateway uses in-cluster credentials. |
| `downstream` \- [`KubernetesResourceDownstream!`](/content/docs/api#definition-KubernetesResourceDownstream/index.html) | The downstream configuration. |
| `upstream` \- [`KubernetesResourceUpstream!`](/content/docs/api#definition-KubernetesResourceUpstream/index.html) | The upstream configuration. |

##### Example

```json
{
  "id": "YWJjMTIzeHl6Nzg5",
  "createdAt": "2024-01-01T00:00:00.000Z",
  "updatedAt": "2024-01-15T00:00:00.000Z",
  "name": "Example Name",
  "tags": [Tag],
  "address": ResourceAddress,
  "alias": "example",
  "protocols": ResourceProtocols,
  "isActive": true,
  "remoteNetwork": RemoteNetwork,
  "groups": GroupConnection,
  "serviceAccounts": ServiceAccountConnection,
  "access": AccessConnection,
  "isVisible": true,
  "isBrowserShortcutEnabled": true,
  "securityPolicy": SecurityPolicy,
  "usageBasedAutolockDurationDays": 12345,
  "accessPolicy": AccessPolicy,
  "approvalMode": "MANUAL",
  "approverGroups": GroupConnection,
  "proxyAddress": "192.168.1.100",
  "certificateAuthorityCert": "example",
  "gateway": Gateway,
  "clusterRef": "example",
  "downstream": KubernetesResourceDownstream,
  "upstream": KubernetesResourceUpstream
}
```

[Types](/content/docs/api#group-Types/index.html)

## KubernetesResourceCreateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`KubernetesResource`](/content/docs/api#definition-KubernetesResource/index.html) | The Kubernetes Resource that was created. |

##### Example

```json
{
  "ok": true,
  "error": "example",
  "entity": KubernetesResource
}
```

[Types](/content/docs/api#group-Types/index.html)

## KubernetesResourceDownstream

##### Fields

| Field Name | Description |
| --- | --- |
| `port` \- [`Int!`](/content/docs/api#definition-Int/index.html) | The downstream port. |

##### Example

```json
{"port": 443}
```

[Types](/content/docs/api#group-Types/index.html)

## KubernetesResourceUpdateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`KubernetesResource`](/content/docs/api#definition-KubernetesResource/index.html) | The Kubernetes Resource being updated. |

##### Example

```json
{
  "ok": true,
  "error": "example",
  "entity": KubernetesResource
}
```

[Types](/content/docs/api#group-Types/index.html)

## KubernetesResourceUpstream

##### Fields

| Field Name | Description |
| --- | --- |
| `port` \- [`Int!`](/content/docs/api#definition-Int/index.html) | The upstream port. |

##### Example

```json
{"port": 443}
```

[Types](/content/docs/api#group-Types/index.html)

## KubernetesUpstreamInput

##### Fields

| Input Field | Description |
| --- | --- |
| `port` \- [`Int!`](/content/docs/api#definition-Int/index.html) | The upstream port. The value must be between 1 and 65535 inclusive. |

##### Example

```json
{"port": 443}
```

[Types](/content/docs/api#group-Types/index.html)

## ManualVerification

##### Fields

| Field Name | Description |
| --- | --- |
| `isVerified` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the device is verified by this trust provider. |
| `value` \- [`ManualVerificationValue`](/content/docs/api#definition-ManualVerificationValue/index.html) | The type of manual verification. Has a value if the device is manually verified. |

##### Example

```json
{"isVerified": true, "value": "SERIAL_NUMBER_VERIFIED"}
```

[Types](/content/docs/api#group-Types/index.html)

## ManualVerificationValue

##### Values

| Enum Value | Description |
| --- | --- |
| `SERIAL_NUMBER_VERIFIED` | The device's serial number has been manually verified. |
| `DEVICE_INSTANCE_VERIFIED` | The device instance has been manually verified. |

##### Example

```gql
"SERIAL_NUMBER_VERIFIED"
```

[Types](/content/docs/api#group-Types/index.html)

## NetworkResource

##### Fields

##### Example

[Types](/content/docs/api#group-Types/index.html)

## Node

##### Description

An object with an ID

##### Fields

| Field Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the object |

##### Possible Types

| Node Types |
| --- |
| [`NetworkResource`](/content/docs/api#definition-NetworkResource/index.html) |
| [`RemoteNetwork`](/content/docs/api#definition-RemoteNetwork/index.html) |
| [`Connector`](/content/docs/api#definition-Connector/index.html) |
| [`Gateway`](/content/docs/api#definition-Gateway/index.html) |
| [`X509CertificateAuthority`](/content/docs/api#definition-X509CertificateAuthority/index.html) |
| [`SSHCertificateAuthority`](/content/docs/api#definition-SSHCertificateAuthority/index.html) |
| [`Group`](/content/docs/api#definition-Group/index.html) |
| [`User`](/content/docs/api#definition-User/index.html) |
| [`Device`](/content/docs/api#definition-Device/index.html) |
| [`SecurityPolicy`](/content/docs/api#definition-SecurityPolicy/index.html) |
| [`ServiceAccount`](/content/docs/api#definition-ServiceAccount/index.html) |
| [`ServiceAccountKey`](/content/docs/api#definition-ServiceAccountKey/index.html) |
| [`KubernetesResource`](/content/docs/api#definition-KubernetesResource/index.html) |
| [`SSHResource`](/content/docs/api#definition-SSHResource/index.html) |
| [`WebAppResource`](/content/docs/api#definition-WebAppResource/index.html) |
| [`AccessRequest`](/content/docs/api#definition-AccessRequest/index.html) |
| [`SerialNumber`](/content/docs/api#definition-SerialNumber/index.html) |

##### Example

```json
{"id": "YWJjMTIzeHl6Nzg5"}
```

[Types](/content/docs/api#group-Types/index.html)

## OsVersionPostureCheck

##### Fields

| Field Name | Description |
| --- | --- |
| `isSatisfied` \- [`PostureStatus!`](/content/docs/api#definition-PostureStatus/index.html) | Whether the device satisfies this posture check. |
| `version` \- [`String`](/content/docs/api#definition-String/index.html) | The OS version reported by the device. |

##### Example

```json
{"isSatisfied": "YES", "version": "1.0.0"}
```

[Types](/content/docs/api#group-Types/index.html)

## PageInfo

##### Description

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

##### Fields

| Field Name | Description |
| --- | --- |
| `hasNextPage` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | When paginating forwards, are there more items? |
| `hasPreviousPage` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | When paginating backwards, are there more items? |
| `startCursor` \- [`String`](/content/docs/api#definition-String/index.html) | When paginating backwards, the cursor to continue. |
| `endCursor` \- [`String`](/content/docs/api#definition-String/index.html) | When paginating forwards, the cursor to continue. |

##### Example

```json
{
  "hasNextPage": true,
  "hasPreviousPage": true,
  "startCursor": "example",
  "endCursor": "example"
}
```

[Types](/content/docs/api#group-Types/index.html)

## PortRange

##### Fields

| Field Name | Description |
| --- | --- |
| `start` \- [`Int!`](/content/docs/api#definition-Int/index.html) | The start value of the port range (inclusive). The value must be between 1 and 65535 inclusive. |
| `end` \- [`Int!`](/content/docs/api#definition-Int/index.html) | The end value of the port range (inclusive). The value must be between 1 and 65535 inclusive. This `end` value can be the same as the `start` value, which means only a single port is allowed. |

##### Example

```json
{"start": 12345, "end": 12345}
```

[Types](/content/docs/api#group-Types/index.html)

## PortRangeInput

##### Fields

| Input Field | Description |
| --- | --- |
| `start` \- [`Int!`](/content/docs/api#definition-Int/index.html) | The start value of the port range (inclusive). The value must be between 1 and 65535 inclusive. |
| `end` \- [`Int!`](/content/docs/api#definition-Int/index.html) | The end value of the port range (inclusive). The value must be between 1 and 65535 inclusive. This `end` value can be the same as the `start` value, which means only a single port is allowed. |

##### Example

```json
{"start": 12345, "end": 12345}
```

[Types](/content/docs/api#group-Types/index.html)

## PostureStatus

##### Values

| Enum Value | Description |
| --- | --- |
| `YES` |  |
| `NO` |  |
| `NOT_REQUIRED` |  |

##### Example

```gql
"YES"
```

[Types](/content/docs/api#group-Types/index.html)

## Principal

##### Types

| Union Types |
| --- |
| [`Group`](/content/docs/api#definition-Group/index.html) |
| [`ServiceAccount`](/content/docs/api#definition-ServiceAccount/index.html) |

##### Example

```gql
Group
```

[Types](/content/docs/api#group-Types/index.html)

## PrincipalType

##### Values

| Enum Value | Description |
| --- | --- |
| `GROUP` |  |
| `SERVICE_ACCOUNT` |  |

##### Example

```gql
"GROUP"
```

[Types](/content/docs/api#group-Types/index.html)

## 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!]`](/content/docs/api#definition-PrincipalType/index.html) |  |

##### Example

```json
{"in": ["GROUP"]}
```

[Types](/content/docs/api#group-Types/index.html)

## PrivacyCategoryConfig

##### Fields

| Field Name | Description |
| --- | --- |
| `blockAffiliate` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether affiliate & tracking domains are blocked |
| `blockDisguisedTrackers` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether third-party trackers disguising themselves as first-party are detected and blocked |
| `blockAdsAndTrackers` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether ads & trackers are blocked using regularly updated lists |

##### Example

```json
{
  "blockAffiliate": true,
  "blockDisguisedTrackers": true,
  "blockAdsAndTrackers": true
}
```

[Types](/content/docs/api#group-Types/index.html)

## PrivacyCategoryConfigInput

##### Fields

| Input Field | Description |
| --- | --- |
| `blockAffiliate` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether affiliate & tracking domains are blocked |
| `blockDisguisedTrackers` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether third-party trackers disguising themselves as first-party are detected and blocked |
| `blockAdsAndTrackers` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether ads & trackers are blocked using regularly updated lists |

##### Example

```json
{
  "blockAffiliate": true,
  "blockDisguisedTrackers": true,
  "blockAdsAndTrackers": true
}
```

[Types](/content/docs/api#group-Types/index.html)

## ProtocolInput

##### Fields

| Input Field | Description |
| --- | --- |
| `policy` \- [`ProtocolPolicy!`](/content/docs/api#definition-ProtocolPolicy/index.html) | Whether to allow all ports or restrict protocol access within certain port ranges. |
| `ports` \- [`[PortRangeInput!]!`](/content/docs/api#definition-PortRangeInput/index.html) | 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

```json
{"policy": "ALLOW_ALL", "ports": [PortRangeInput]}
```

[Types](/content/docs/api#group-Types/index.html)

## ProtocolPolicy

##### Values

| Enum Value | Description |
| --- | --- |
| `ALLOW_ALL` |  |
| `RESTRICTED` |  |

##### Example

```gql
"ALLOW_ALL"
```

[Types](/content/docs/api#group-Types/index.html)

## ProtocolsInput

##### Fields

| Input Field | Description |
| --- | --- |
| `allowIcmp` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether to allow or deny ICMP |
| `tcp` \- [`ProtocolInput!`](/content/docs/api#definition-ProtocolInput/index.html) | Specified to allow or restrict TCP access within certain port ranges. |
| `udp` \- [`ProtocolInput!`](/content/docs/api#definition-ProtocolInput/index.html) | Specified to allow or restrict UDP access within certain port ranges. |

##### Example

```json
{
  "allowIcmp": true,
  "tcp": ProtocolInput,
  "udp": ProtocolInput
}
```

[Types](/content/docs/api#group-Types/index.html)

## RemoteNetwork

##### Fields

| Field Name | Description |
| --- | --- |
| `createdAt` \- [`DateTime!`](/content/docs/api#definition-DateTime/index.html) |  |
| `updatedAt` \- [`DateTime!`](/content/docs/api#definition-DateTime/index.html) |  |
| `name` \- [`String!`](/content/docs/api#definition-String/index.html) |  |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the object |
| `networkType` \- [`RemoteNetworkType!`](/content/docs/api#definition-RemoteNetworkType/index.html) | The Remote Network's network type. |
| `location` \- [`RemoteNetworkLocation!`](/content/docs/api#definition-RemoteNetworkLocation/index.html) | The Remote Network's location. |
| `isActive` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Indicates whether the Remote Network is active. |
| `resources` \- [`ResourceConnection!`](/content/docs/api#definition-ResourceConnection/index.html) | Which Resources are assigned to this Remote Network. |
| ##### Arguments<br>###### `before` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `after` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `first` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `last` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `filter` \- [`ResourceFilterInput`](/content/docs/api\#definition-ResourceFilterInput/index.html) |
| `connectors` \- [`ConnectorConnection!`](/content/docs/api#definition-ConnectorConnection/index.html) | Which Connectors are part of this Remote Network. |
| ##### Arguments<br>###### `before` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `after` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `first` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `last` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `filter` \- [`ConnectorFilterInput`](/content/docs/api\#definition-ConnectorFilterInput/index.html) |
| `gateways` \- [`GatewayConnection!`](/content/docs/api#definition-GatewayConnection/index.html) | Which Gateways are part of this Remote Network. |
| ##### Arguments<br>###### `before` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `after` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `first` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `last` \- [`Int`](/content/docs/api\#definition-Int/index.html) |

##### Example

```json
{
  "createdAt": "2024-01-01T00:00:00.000Z",
  "updatedAt": "2024-01-15T00:00:00.000Z",
  "name": "Example Name",
  "id": "YWJjMTIzeHl6Nzg5",
  "networkType": "REGULAR",
  "location": "AWS",
  "isActive": true,
  "resources": ResourceConnection,
  "connectors": ConnectorConnection,
  "gateways": GatewayConnection
}
```

[Types](/content/docs/api#group-Types/index.html)

## RemoteNetworkConnection

##### Fields

| Field Name | Description |
| --- | --- |
| `pageInfo` \- [`PageInfo!`](/content/docs/api#definition-PageInfo/index.html) | Pagination data for this connection. |
| `edges` \- [`[RemoteNetworkEdge!]!`](/content/docs/api#definition-RemoteNetworkEdge/index.html) | Contains the nodes in this connection. |
| `totalCount` \- [`Int!`](/content/docs/api#definition-Int/index.html) | A total count of items in the connection. |

##### Example

```json
{
  "pageInfo": PageInfo,
  "edges": [RemoteNetworkEdge],
  "totalCount": 10
}
```

[Types](/content/docs/api#group-Types/index.html)

## RemoteNetworkCreateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`RemoteNetwork`](/content/docs/api#definition-RemoteNetwork/index.html) | The Remote Network that was created. |

##### Example

```json
{"ok": true, "error": "example", "entity": RemoteNetwork}
```

[Types](/content/docs/api#group-Types/index.html)

## RemoteNetworkDeleteMutation

##### Fields

##### Example

```json
{"ok": true, "error": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## RemoteNetworkEdge

##### Description

A Relay edge containing a `RemoteNetwork` and its cursor.

##### Fields

| Field Name | Description |
| --- | --- |
| `node` \- [`RemoteNetwork!`](/content/docs/api#definition-RemoteNetwork/index.html) | The item at the end of the edge. |
| `cursor` \- [`String!`](/content/docs/api#definition-String/index.html) | A cursor for use in pagination |

##### Example

```json
{"node": RemoteNetwork, "cursor": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## RemoteNetworkFilterInput

##### Fields

| Input Field | Description |
| --- | --- |
| `name` \- [`StringFilterOperatorInput`](/content/docs/api#definition-StringFilterOperatorInput/index.html) |  |
| `networkType` \- [`RemoteNetworkTypeFilterOperatorInput`](/content/docs/api#definition-RemoteNetworkTypeFilterOperatorInput/index.html) |  |

##### Example

```json
{
  "name": StringFilterOperatorInput,
  "networkType": RemoteNetworkTypeFilterOperatorInput
}
```

[Types](/content/docs/api#group-Types/index.html)

## RemoteNetworkIdFilterOperationInput

##### Description

Filter input object for a RemoteNetwork ID 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` \- [`[ID!]`](/content/docs/api#definition-ID/index.html) |  |
| `eq` \- [`ID`](/content/docs/api#definition-ID/index.html) |  |

##### Example

```json
{"in": ["abc123xyz789"], "eq": "abc123xyz789"}
```

[Types](/content/docs/api#group-Types/index.html)

## RemoteNetworkLocation

##### Values

| Enum Value | Description |
| --- | --- |
| `AWS` |  |
| `AZURE` |  |
| `GOOGLE_CLOUD` |  |
| `ON_PREMISE` |  |
| `OTHER` |  |

##### Example

```gql
"AWS"
```

[Types](/content/docs/api#group-Types/index.html)

## RemoteNetworkType

##### Values

| Enum Value | Description |
| --- | --- |
| `REGULAR` |  |
| `EXIT` |  |

##### Example

```gql
"REGULAR"
```

[Types](/content/docs/api#group-Types/index.html)

## RemoteNetworkTypeFilterOperatorInput

##### Description

Filter input object for a RemoteNetworkType 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` \- [`[RemoteNetworkType!]`](/content/docs/api#definition-RemoteNetworkType/index.html) |  |

##### Example

```json
{"in": ["REGULAR"]}
```

[Types](/content/docs/api#group-Types/index.html)

## RemoteNetworkUpdateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`RemoteNetwork`](/content/docs/api#definition-RemoteNetwork/index.html) | The Remote Network being updated. |

##### Example

```json
{"ok": true, "error": "example", "entity": RemoteNetwork}
```

[Types](/content/docs/api#group-Types/index.html)

## Resource

##### Fields

##### Possible Types

| Resource Types |
| --- |
| [`NetworkResource`](/content/docs/api#definition-NetworkResource/index.html) |
| [`KubernetesResource`](/content/docs/api#definition-KubernetesResource/index.html) |
| [`SSHResource`](/content/docs/api#definition-SSHResource/index.html) |
| [`WebAppResource`](/content/docs/api#definition-WebAppResource/index.html) |

##### Example

[Types](/content/docs/api#group-Types/index.html)

## ResourceAccessAddMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`Resource`](/content/docs/api#definition-Resource/index.html) | The Resource associated with the access being updated. |

##### Example

```json
{"ok": true, "error": "example", "entity": Resource}
```

[Types](/content/docs/api#group-Types/index.html)

## ResourceAccessRemoveMutation

##### Fields

##### Example

```json
{"ok": true, "error": "example", "entity": Resource}
```

[Types](/content/docs/api#group-Types/index.html)

## ResourceAccessSetMutation

##### Fields

##### Example

```json
{"ok": true, "error": "example", "entity": Resource}
```

[Types](/content/docs/api#group-Types/index.html)

## ResourceAddress

##### Fields

| Field Name | Description |
| --- | --- |
| `type` \- [`AddressType!`](/content/docs/api#definition-AddressType/index.html) | IP or DNS resource. |
| `value` \- [`String!`](/content/docs/api#definition-String/index.html) |  |

##### Example

```json
{"type": "IP", "value": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## ResourceConnection

##### Fields

| Field Name | Description |
| --- | --- |
| `pageInfo` \- [`PageInfo!`](/content/docs/api#definition-PageInfo/index.html) | Pagination data for this connection. |
| `edges` \- [`[ResourceEdge!]!`](/content/docs/api#definition-ResourceEdge/index.html) | Contains the nodes in this connection. |
| `totalCount` \- [`Int!`](/content/docs/api#definition-Int/index.html) | A total count of items in the connection. |

##### Example

```json
{
  "pageInfo": PageInfo,
  "edges": [ResourceEdge],
  "totalCount": 10
}
```

[Types](/content/docs/api#group-Types/index.html)

## ResourceCreateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`NetworkResource`](/content/docs/api#definition-NetworkResource/index.html) | The Resource that was created. |

##### Example

```json
{
  "ok": true,
  "error": "example",
  "entity": NetworkResource
}
```

[Types](/content/docs/api#group-Types/index.html)

## ResourceDeleteMutation

##### Fields

##### Example

```json
{"ok": true, "error": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## ResourceEdge

##### Description

A Relay edge containing a `Resource` and its cursor.

##### Fields

| Field Name | Description |
| --- | --- |
| `node` \- [`Resource!`](/content/docs/api#definition-Resource/index.html) | The item at the end of the edge. |
| `cursor` \- [`String!`](/content/docs/api#definition-String/index.html) | A cursor for use in pagination |

##### Example

```json
{"node": Resource, "cursor": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## ResourceFilterInput

##### Fields

| Input Field | Description |
| --- | --- |
| `name` \- [`StringFilterOperatorInput`](/content/docs/api#definition-StringFilterOperatorInput/index.html) |  |
| `remoteNetworkId` \- [`RemoteNetworkIdFilterOperationInput`](/content/docs/api#definition-RemoteNetworkIdFilterOperationInput/index.html) |  |
| `tags` \- [`TagsFilterOperatorInput`](/content/docs/api#definition-TagsFilterOperatorInput/index.html) |  |

##### Example

```json
{
  "name": StringFilterOperatorInput,
  "remoteNetworkId": RemoteNetworkIdFilterOperationInput,
  "tags": TagsFilterOperatorInput
}
```

[Types](/content/docs/api#group-Types/index.html)

## ResourceIdFilterOperationInput

##### Description

Filter input object for a Resource ID 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` \- [`[ID!]`](/content/docs/api#definition-ID/index.html) |  |

##### Example

```json
{"in": ["abc123xyz789"]}
```

[Types](/content/docs/api#group-Types/index.html)

## ResourceProtocol

##### Fields

| Field Name | Description |
| --- | --- |
| `policy` \- [`ProtocolPolicy!`](/content/docs/api#definition-ProtocolPolicy/index.html) | Whether the protocol is allowed on all ports or restricted to certain ranges |
| `ports` \- [`[PortRange!]!`](/content/docs/api#definition-PortRange/index.html) | List of port ranges to allow access. This value should be ignored when `policy` is `ALLOW_ALL`. |

##### Example

```json
{"policy": "ALLOW_ALL", "ports": [PortRange]}
```

[Types](/content/docs/api#group-Types/index.html)

## ResourceProtocols

##### Fields

| Field Name | Description |
| --- | --- |
| `allowIcmp` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | True if ICMP is allowed. Otherwise, false. |
| `tcp` \- [`ResourceProtocol!`](/content/docs/api#definition-ResourceProtocol/index.html) | Protocol policy for TCP. |
| `udp` \- [`ResourceProtocol!`](/content/docs/api#definition-ResourceProtocol/index.html) | Protocol policy for UDP. |

##### Example

```json
{
  "allowIcmp": true,
  "tcp": ResourceProtocol,
  "udp": ResourceProtocol
}
```

[Types](/content/docs/api#group-Types/index.html)

## ResourceUpdateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`NetworkResource`](/content/docs/api#definition-NetworkResource/index.html) | The Resource being updated. |

##### Example

```json
{
  "ok": true,
  "error": "example",
  "entity": NetworkResource
}
```

[Types](/content/docs/api#group-Types/index.html)

## RoutingMode

##### Values

| Enum Value | Description |
| --- | --- |
| `THROUGH_TWINGATE` |  |
| `BYPASS_TWINGATE` |  |

##### Example

```gql
"THROUGH_TWINGATE"
```

[Types](/content/docs/api#group-Types/index.html)

## SSHCertificateAuthority

##### Fields

| Field Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the object |
| `name` \- [`String!`](/content/docs/api#definition-String/index.html) | The fingerprint of the SSH Certificate Authority public key. |
| `fingerprint` \- [`String!`](/content/docs/api#definition-String/index.html) | The fingerprint of the SSH Certificate Authority public key. |

##### Example

```json
{"id": "YWJjMTIzeHl6Nzg5", "name": "Example Name", "fingerprint": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## SSHCertificateAuthorityCreateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`SSHCertificateAuthority`](/content/docs/api#definition-SSHCertificateAuthority/index.html) | The SSH Certificate Authority that was created. |

##### Example

```json
{
  "ok": true,
  "error": "example",
  "entity": SSHCertificateAuthority
}
```

[Types](/content/docs/api#group-Types/index.html)

## SSHCertificateAuthorityDeleteMutation

##### Fields

##### Example

```json
{"ok": true, "error": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## SSHDownstreamInput

##### Fields

##### Example

```json
{"port": 443}
```

[Types](/content/docs/api#group-Types/index.html)

## SSHResource

##### Fields

##### Example

[Types](/content/docs/api#group-Types/index.html)

## SSHResourceCreateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`SSHResource`](/content/docs/api#definition-SSHResource/index.html) | The SSH Resource that was created. |

##### Example

```json
{"ok": true, "error": "example", "entity": SSHResource}
```

[Types](/content/docs/api#group-Types/index.html)

## SSHResourceDownstream

##### Fields

| Field Name | Description |
| --- | --- |
| `port` \- [`Int!`](/content/docs/api#definition-Int/index.html) | The downstream port. |

##### Example

```json
{"port": 443}
```

[Types](/content/docs/api#group-Types/index.html)

## SSHResourceUpdateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`SSHResource`](/content/docs/api#definition-SSHResource/index.html) | The SSH Resource being updated. |

##### Example

```json
{"ok": true, "error": "example", "entity": SSHResource}
```

[Types](/content/docs/api#group-Types/index.html)

## SSHResourceUpstream

##### Fields

| Field Name | Description |
| --- | --- |
| `port` \- [`Int!`](/content/docs/api#definition-Int/index.html) | The upstream port. |

##### Example

```json
{"port": 443}
```

[Types](/content/docs/api#group-Types/index.html)

## SSHUpstreamInput

##### Fields

##### Example

```json
{"port": 443}
```

[Types](/content/docs/api#group-Types/index.html)

## SecurityCategoryConfig

##### Fields

| Field Name | Description |
| --- | --- |
| `enableThreatIntelligenceFeeds` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether protection against malware, phishing, and command-and-control servers is enabled |
| `enableGoogleSafeBrowsing` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether Google Safe Browsing is enabled |
| `blockCryptojacking` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether cryptocurrency mining on network devices is blocked |
| `blockIdnHomographs` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether domain impersonation via character substitution (e.g., Cyrillic 'e' for Latin 'e') is blocked |
| `blockTyposquatting` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether malicious domains targeting mistyped addresses (e.g., 'gooogle.com') are blocked |
| `blockDnsRebinding` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether DNS responses that contain private IP addresses are blocked |
| `blockNewlyRegisteredDomains` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether domains registered within that last 30 days are blocked |
| `blockDomainGenerationAlgorithms` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether malware-generated domains used as command and control rendezvous points are blocked |
| `blockParkedDomains` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether parked domains are blocked |

##### Example

```json
{
  "enableThreatIntelligenceFeeds": true,
  "enableGoogleSafeBrowsing": true,
  "blockCryptojacking": true,
  "blockIdnHomographs": true,
  "blockTyposquatting": true,
  "blockDnsRebinding": true,
  "blockNewlyRegisteredDomains": true,
  "blockDomainGenerationAlgorithms": true,
  "blockParkedDomains": true
}
```

[Types](/content/docs/api#group-Types/index.html)

## SecurityCategoryConfigInput

##### Fields

| Input Field | Description |
| --- | --- |
| `enableThreatIntelligenceFeeds` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether protection against malware, phishing, and command-and-control servers is enabled |
| `enableGoogleSafeBrowsing` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether Google Safe Browsing is enabled |
| `blockCryptojacking` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether cryptocurrency mining on network devices is blocked |
| `blockIdnHomographs` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether domain impersonation via character substitution (e.g., Cyrillic 'e' for Latin 'e') is blocked |
| `blockTyposquatting` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether malicious domains targeting mistyped addresses (e.g., 'gooogle.com') are blocked |
| `blockDnsRebinding` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether DNS responses that contain private IP addresses are blocked |
| `blockNewlyRegisteredDomains` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether domains registered within that last 30 days are blocked |
| `blockDomainGenerationAlgorithms` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether malware-generated domains used as command and control rendezvous points are blocked |
| `blockParkedDomains` \- [`Boolean`](/content/docs/api#definition-Boolean/index.html) | Whether parked domains are blocked |

##### Example

[Types](/content/docs/api#group-Types/index.html)

## SecurityPolicy

##### Fields

| Field Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the object |
| `createdAt` \- [`DateTime!`](/content/docs/api#definition-DateTime/index.html) |  |
| `updatedAt` \- [`DateTime!`](/content/docs/api#definition-DateTime/index.html) |  |
| `name` \- [`String!`](/content/docs/api#definition-String/index.html) |  |
| `policyType` \- [`SecurityPolicyType!`](/content/docs/api#definition-SecurityPolicyType/index.html) | The type of Security Policy. |
| `groups` \- [`GroupConnection!`](/content/docs/api#definition-GroupConnection/index.html) | Groups assigned to this Security Policy. |
| ##### Arguments<br>###### `before` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `after` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `first` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `last` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `filter` \- [`GroupFilterInput`](/content/docs/api\#definition-GroupFilterInput/index.html) |

##### Example

```json
{
  "id": "YWJjMTIzeHl6Nzg5",
  "createdAt": "2024-01-01T00:00:00.000Z",
  "updatedAt": "2024-01-15T00:00:00.000Z",
  "name": "Example Name",
  "policyType": "RESOURCE",
  "groups": GroupConnection
}
```

[Types](/content/docs/api#group-Types/index.html)

## SecurityPolicyConnection

##### Fields

| Field Name | Description |
| --- | --- |
| `pageInfo` \- [`PageInfo!`](/content/docs/api#definition-PageInfo/index.html) | Pagination data for this connection. |
| `edges` \- [`[SecurityPolicyEdge!]!`](/content/docs/api#definition-SecurityPolicyEdge/index.html) | Contains the nodes in this connection. |
| `totalCount` \- [`Int!`](/content/docs/api#definition-Int/index.html) | A total count of items in the connection. |

##### Example

```json
{
  "pageInfo": PageInfo,
  "edges": [SecurityPolicyEdge],
  "totalCount": 10
}
```

[Types](/content/docs/api#group-Types/index.html)

## SecurityPolicyEdge

##### Description

A Relay edge containing a `SecurityPolicy` and its cursor.

##### Fields

| Field Name | Description |
| --- | --- |
| `node` \- [`SecurityPolicy!`](/content/docs/api#definition-SecurityPolicy/index.html) | The item at the end of the edge. |
| `cursor` \- [`String!`](/content/docs/api#definition-String/index.html) | A cursor for use in pagination |

##### Example

```json
{"node": SecurityPolicy, "cursor": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## SecurityPolicyFilterField

##### Fields

| Input Field | Description |
| --- | --- |
| `policyType` \- [`SecurityPolicyTypeFilterOperatorInput`](/content/docs/api#definition-SecurityPolicyTypeFilterOperatorInput/index.html) |  |
| `name` \- [`StringFilterOperatorInput`](/content/docs/api#definition-StringFilterOperatorInput/index.html) |  |

##### Example

```json
{
  "policyType": SecurityPolicyTypeFilterOperatorInput,
  "name": StringFilterOperatorInput
}
```

[Types](/content/docs/api#group-Types/index.html)

## SecurityPolicyType

##### Values

| Enum Value | Description |
| --- | --- |
| `RESOURCE` |  |
| `DEFAULT_RESOURCE` |  |

##### Example

```gql
"RESOURCE"
```

[Types](/content/docs/api#group-Types/index.html)

## 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!]`](/content/docs/api#definition-SecurityPolicyType/index.html) |  |

##### Example

```json
{"in": ["RESOURCE"]}
```

[Types](/content/docs/api#group-Types/index.html)

## SecurityPolicyUpdateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`SecurityPolicy`](/content/docs/api#definition-SecurityPolicy/index.html) | The Security Policy being updated. |

##### Example

```json
{"ok": true, "error": "example", "entity": SecurityPolicy}
```

[Types](/content/docs/api#group-Types/index.html)

## SerialNumber

##### Fields

| Field Name | Description |
| --- | --- |
| `createdAt` \- [`DateTime!`](/content/docs/api#definition-DateTime/index.html) |  |
| `serialNumber` \- [`String!`](/content/docs/api#definition-String/index.html) |  |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the object |
| `matchedDevices` \- [`[Device!]!`](/content/docs/api#definition-Device/index.html) | List of Devices that are serial number verified and match this serial number. |

##### Example

```json
{
  "createdAt": "2024-01-01T00:00:00.000Z",
  "serialNumber": "example",
  "id": "YWJjMTIzeHl6Nzg5",
  "matchedDevices": [Device]
}
```

[Types](/content/docs/api#group-Types/index.html)

## SerialNumberConnection

##### Fields

| Field Name | Description |
| --- | --- |
| `pageInfo` \- [`PageInfo!`](/content/docs/api#definition-PageInfo/index.html) | Pagination data for this connection. |
| `edges` \- [`[SerialNumberEdge!]!`](/content/docs/api#definition-SerialNumberEdge/index.html) | Contains the nodes in this connection. |
| `totalCount` \- [`Int!`](/content/docs/api#definition-Int/index.html) | A total count of items in the connection. |

##### Example

```json
{
  "pageInfo": PageInfo,
  "edges": [SerialNumberEdge],
  "totalCount": 10
}
```

[Types](/content/docs/api#group-Types/index.html)

## SerialNumberEdge

##### Description

A Relay edge containing a `SerialNumber` and its cursor.

##### Fields

| Field Name | Description |
| --- | --- |
| `node` \- [`SerialNumber!`](/content/docs/api#definition-SerialNumber/index.html) | The item at the end of the edge. |
| `cursor` \- [`String!`](/content/docs/api#definition-String/index.html) | A cursor for use in pagination |

##### Example

```json
{"node": SerialNumber, "cursor": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## SerialNumberFilterInput

##### Fields

| Input Field | Description |
| --- | --- |
| `serialNumber` \- [`StringFilterOperatorInput`](/content/docs/api#definition-StringFilterOperatorInput/index.html) |  |
| `hasMatchedDevices` \- [`BooleanFilterOperatorInput`](/content/docs/api#definition-BooleanFilterOperatorInput/index.html) |  |

##### Example

```json
{
  "serialNumber": StringFilterOperatorInput,
  "hasMatchedDevices": BooleanFilterOperatorInput
}
```

[Types](/content/docs/api#group-Types/index.html)

## SerialNumbersCreateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entities` \- [`[SerialNumber!]`](/content/docs/api#definition-SerialNumber/index.html) | A list of created serial numbers. |

##### Example

```json
{
  "ok": true,
  "error": "example",
  "entities": [SerialNumber]
}
```

[Types](/content/docs/api#group-Types/index.html)

## SerialNumbersDeleteMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Records whether the delete mutation was successfully completed. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error was encountered causing the delete mutation to fail. |

##### Example

```json
{"ok": true, "error": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## ServiceAccount

##### Fields

| Field Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the object |
| `name` \- [`String!`](/content/docs/api#definition-String/index.html) |  |
| `createdAt` \- [`DateTime!`](/content/docs/api#definition-DateTime/index.html) |  |
| `updatedAt` \- [`DateTime!`](/content/docs/api#definition-DateTime/index.html) |  |
| `resources` \- [`ResourceConnection!`](/content/docs/api#definition-ResourceConnection/index.html) | List of Resources that this Service Account has access to. |
| ##### Arguments<br>###### `before` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `after` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `first` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `last` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `filter` \- [`ResourceFilterInput`](/content/docs/api\#definition-ResourceFilterInput/index.html) |
| `keys` \- [`ServiceAccountKeyConnection!`](/content/docs/api#definition-ServiceAccountKeyConnection/index.html) | List of Service Keys that belong to this Service Account. |
| ##### Arguments<br>###### `before` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `after` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `first` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `last` \- [`Int`](/content/docs/api\#definition-Int/index.html) |

##### Example

```json
{
  "id": "YWJjMTIzeHl6Nzg5",
  "name": "Example Name",
  "createdAt": "2024-01-01T00:00:00.000Z",
  "updatedAt": "2024-01-15T00:00:00.000Z",
  "resources": ResourceConnection,
  "keys": ServiceAccountKeyConnection
}
```

[Types](/content/docs/api#group-Types/index.html)

## ServiceAccountConnection

##### Fields

| Field Name | Description |
| --- | --- |
| `pageInfo` \- [`PageInfo!`](/content/docs/api#definition-PageInfo/index.html) | Pagination data for this connection. |
| `edges` \- [`[ServiceAccountEdge!]!`](/content/docs/api#definition-ServiceAccountEdge/index.html) | Contains the nodes in this connection. |
| `totalCount` \- [`Int!`](/content/docs/api#definition-Int/index.html) | A total count of items in the connection. |

##### Example

```json
{
  "pageInfo": PageInfo,
  "edges": [ServiceAccountEdge],
  "totalCount": 10
}
```

[Types](/content/docs/api#group-Types/index.html)

## ServiceAccountCreateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`ServiceAccount`](/content/docs/api#definition-ServiceAccount/index.html) | The Service Account that was created. |

##### Example

```json
{"ok": true, "error": "example", "entity": ServiceAccount}
```

[Types](/content/docs/api#group-Types/index.html)

## ServiceAccountDeleteMutation

##### Fields

##### Example

```json
{"ok": true, "error": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## ServiceAccountEdge

##### Description

A Relay edge containing a `ServiceAccount` and its cursor.

##### Fields

| Field Name | Description |
| --- | --- |
| `node` \- [`ServiceAccount!`](/content/docs/api#definition-ServiceAccount/index.html) | The item at the end of the edge. |
| `cursor` \- [`String!`](/content/docs/api#definition-String/index.html) | A cursor for use in pagination |

##### Example

```json
{"node": ServiceAccount, "cursor": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## ServiceAccountFilterInput

##### Fields

| Input Field | Description |
| --- | --- |
| `name` \- [`StringFilterOperatorInput`](/content/docs/api#definition-StringFilterOperatorInput/index.html) |  |

##### Example

```json
{"name": StringFilterOperatorInput}
```

[Types](/content/docs/api#group-Types/index.html)

## ServiceAccountKey

##### Fields

| Field Name | Description |
| --- | --- |
| `createdAt` \- [`DateTime!`](/content/docs/api#definition-DateTime/index.html) |  |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the object |
| `name` \- [`String!`](/content/docs/api#definition-String/index.html) |  |
| `expiresAt` \- [`DateTime`](/content/docs/api#definition-DateTime/index.html) |  |
| `revokedAt` \- [`DateTime`](/content/docs/api#definition-DateTime/index.html) |  |
| `updatedAt` \- [`DateTime!`](/content/docs/api#definition-DateTime/index.html) |  |
| `status` \- [`ServiceAccountKeyStatus!`](/content/docs/api#definition-ServiceAccountKeyStatus/index.html) | Indicates the status of the Service Account Key. |
| `serviceAccount` \- [`ServiceAccount!`](/content/docs/api#definition-ServiceAccount/index.html) | The Service Account. |

##### Example

```json
{
  "createdAt": "2024-01-01T00:00:00.000Z",
  "id": "YWJjMTIzeHl6Nzg5",
  "name": "Example Name",
  "expiresAt": "2024-12-31T23:59:59.000Z",
  "revokedAt": "2024-01-01T00:00:00.000Z",
  "updatedAt": "2024-01-15T00:00:00.000Z",
  "status": "ACTIVE",
  "serviceAccount": ServiceAccount
}
```

[Types](/content/docs/api#group-Types/index.html)

## ServiceAccountKeyConnection

##### Fields

| Field Name | Description |
| --- | --- |
| `pageInfo` \- [`PageInfo!`](/content/docs/api#definition-PageInfo/index.html) | Pagination data for this connection. |
| `edges` \- [`[ServiceAccountKeyEdge!]!`](/content/docs/api#definition-ServiceAccountKeyEdge/index.html) | Contains the nodes in this connection. |
| `totalCount` \- [`Int!`](/content/docs/api#definition-Int/index.html) | A total count of items in the connection. |

##### Example

```json
{
  "pageInfo": PageInfo,
  "edges": [ServiceAccountKeyEdge],
  "totalCount": 10
}
```

[Types](/content/docs/api#group-Types/index.html)

## ServiceAccountKeyCreateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`ServiceAccountKey`](/content/docs/api#definition-ServiceAccountKey/index.html) | The Service Account Key that was created. |
| `token` \- [`String`](/content/docs/api#definition-String/index.html) | The Service Account Key token. |

##### Example

```json
{
  "ok": true,
  "error": "example",
  "entity": ServiceAccountKey,
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"
}
```

[Types](/content/docs/api#group-Types/index.html)

## ServiceAccountKeyDeleteMutation

##### Fields

##### Example

```json
{"ok": true, "error": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## ServiceAccountKeyEdge

##### Description

A Relay edge containing a `ServiceAccountKey` and its cursor.

##### Fields

| Field Name | Description |
| --- | --- |
| `node` \- [`ServiceAccountKey!`](/content/docs/api#definition-ServiceAccountKey/index.html) | The item at the end of the edge. |
| `cursor` \- [`String!`](/content/docs/api#definition-String/index.html) | A cursor for use in pagination |

##### Example

```json
{"node": ServiceAccountKey, "cursor": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## ServiceAccountKeyRevokeMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`ServiceAccountKey`](/content/docs/api#definition-ServiceAccountKey/index.html) | The Service Account Key being revoked. |

##### Example

```json
{
  "ok": true,
  "error": "example",
  "entity": ServiceAccountKey
}
```

[Types](/content/docs/api#group-Types/index.html)

## ServiceAccountKeyStatus

##### Values

| Enum Value | Description |
| --- | --- |
| `ACTIVE` |  |
| `REVOKED` |  |
| `EXPIRED` |  |

##### Example

```gql
"ACTIVE"
```

[Types](/content/docs/api#group-Types/index.html)

## ServiceAccountKeyUpdateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`ServiceAccountKey`](/content/docs/api#definition-ServiceAccountKey/index.html) | The Service Account Key being updated. |

##### Example

```json
{
  "ok": true,
  "error": "example",
  "entity": ServiceAccountKey
}
```

[Types](/content/docs/api#group-Types/index.html)

## ServiceAccountUpdateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`ServiceAccount`](/content/docs/api#definition-ServiceAccount/index.html) | The Service Account being updated. |

##### Example

```json
{"ok": true, "error": "example", "entity": ServiceAccount}
```

[Types](/content/docs/api#group-Types/index.html)

## 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

```gql
"example"
```

[Types](/content/docs/api#group-Types/index.html)

## 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`](/content/docs/api#definition-String/index.html) |  |
| `ieq` \- [`String`](/content/docs/api#definition-String/index.html) | Case-insensitive version of `eq`. |
| `ne` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `startsWith` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `endsWith` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `regexp` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `contains` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `in` \- [`[String!]`](/content/docs/api#definition-String/index.html) |  |

##### Example

```json
{
  "eq": "example",
  "ieq": "example",
  "ne": "example",
  "startsWith": "example",
  "endsWith": "example",
  "regexp": "example",
  "contains": "example",
  "in": ["example"]
}
```

[Types](/content/docs/api#group-Types/index.html)

## Tag

##### Fields

| Field Name | Description |
| --- | --- |
| `value` \- [`String!`](/content/docs/api#definition-String/index.html) |  |
| `key` \- [`String!`](/content/docs/api#definition-String/index.html) |  |

##### Example

```json
{"value": "example", "key": "sk_test_1234567890abcdef"}
```

[Types](/content/docs/api#group-Types/index.html)

## TagInput

##### Fields

| Input Field | Description |
| --- | --- |
| `key` \- [`String!`](/content/docs/api#definition-String/index.html) |  |
| `value` \- [`String!`](/content/docs/api#definition-String/index.html) |  |

##### Example

```json
{"key": "sk_test_1234567890abcdef", "value": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## TagKeyValueFilterInput

##### Fields

| Input Field | Description |
| --- | --- |
| `key` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `value` \- [`TagValueFilterInput`](/content/docs/api#definition-TagValueFilterInput/index.html) |  |

##### Example

```json
{
  "key": "sk_test_1234567890abcdef",
  "value": TagValueFilterInput
}
```

[Types](/content/docs/api#group-Types/index.html)

## TagValueFilterInput

##### Fields

| Input Field | Description |
| --- | --- |
| `in` \- [`[String!]`](/content/docs/api#definition-String/index.html) |  |
| `notIn` \- [`[String!]`](/content/docs/api#definition-String/index.html) |  |
| `eq` \- [`String`](/content/docs/api#definition-String/index.html) |  |

##### Example

```json
{"in": ["example"], "notIn": ["example"], "eq": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## Taggable

##### Fields

| Field Name | Description |
| --- | --- |
| `tags` \- [`[Tag!]!`](/content/docs/api#definition-Tag/index.html) | Tags associated with this entity |

##### Possible Types

| Taggable Types |
| --- |
| [`NetworkResource`](/content/docs/api#definition-NetworkResource/index.html) |
| [`KubernetesResource`](/content/docs/api#definition-KubernetesResource/index.html) |
| [`SSHResource`](/content/docs/api#definition-SSHResource/index.html) |
| [`WebAppResource`](/content/docs/api#definition-WebAppResource/index.html) |

##### Example

```json
{"tags": [Tag]}
```

[Types](/content/docs/api#group-Types/index.html)

## TagsFilterOperatorInput

##### Fields

| Input Field | Description |
| --- | --- |
| `and` \- [`[TagKeyValueFilterInput!]`](/content/docs/api#definition-TagKeyValueFilterInput/index.html) |  |

##### Example

```json
{"and": [TagKeyValueFilterInput]}
```

[Types](/content/docs/api#group-Types/index.html)

## TrustProviderVerification

##### Fields

| Field Name | Description |
| --- | --- |
| `isVerified` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the device is verified by this trust provider. |
| `failureReason` \- [`TrustProviderVerificationFailureReason`](/content/docs/api#definition-TrustProviderVerificationFailureReason/index.html) | The reason for verification failure. Null if the device is verified. |
| `expiredAt` \- [`DateTime`](/content/docs/api#definition-DateTime/index.html) | When the verification data expired. Only has a value when failureReason is VERIFICATION\_EXPIRED. |
| `failureDetails` \- [`String`](/content/docs/api#definition-String/index.html) | Additional details about the verification failure. Sometimes has a value when failureReason is VERIFICATION\_FAILED. |

##### Example

```json
{
  "isVerified": true,
  "failureReason": "VERIFICATION_FAILED",
  "expiredAt": "2024-12-31T23:59:59.000Z",
  "failureDetails": "example"
}
```

[Types](/content/docs/api#group-Types/index.html)

## TrustProviderVerificationFailureReason

##### Values

| Enum Value | Description |
| --- | --- |
| `VERIFICATION_FAILED` |  |
| `VERIFICATION_EXPIRED` |  |
| `NO_SERIAL_NUMBER` |  |
| `NOT_DETECTED` |  |
| `MISSING_DATA` |  |

##### Example

```gql
"VERIFICATION_FAILED"
```

[Types](/content/docs/api#group-Types/index.html)

## User

##### Fields

| Field Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the object |
| `createdAt` \- [`DateTime!`](/content/docs/api#definition-DateTime/index.html) |  |
| `updatedAt` \- [`DateTime!`](/content/docs/api#definition-DateTime/index.html) |  |
| `firstName` \- [`String!`](/content/docs/api#definition-String/index.html) |  |
| `lastName` \- [`String!`](/content/docs/api#definition-String/index.html) |  |
| `email` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `avatarUrl` \- [`String`](/content/docs/api#definition-String/index.html) |  |
| `state` \- [`UserState!`](/content/docs/api#definition-UserState/index.html) | The User's state. |
| `isAdmin` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | True when the User has an admin role. Use `role` instead. |
| `role` \- [`UserRole!`](/content/docs/api#definition-UserRole/index.html) | Indicates the User's role. |
| `type` \- [`UserType!`](/content/docs/api#definition-UserType/index.html) | Indicates the User's type. |
| `groups` \- [`GroupConnection!`](/content/docs/api#definition-GroupConnection/index.html) | Groups this User is a member of. |
| ##### Arguments<br>###### `before` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `after` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `first` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `last` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `filter` \- [`GroupFilterInput`](/content/docs/api\#definition-GroupFilterInput/index.html) |
| `devices` \- [`DeviceConnection!`](/content/docs/api#definition-DeviceConnection/index.html) | Devices belonging to this User. |
| ##### Arguments<br>###### `before` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `after` \- [`String`](/content/docs/api\#definition-String/index.html)<br>###### `first` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `last` \- [`Int`](/content/docs/api\#definition-Int/index.html)<br>###### `filter` \- [`DeviceFilterInput`](/content/docs/api\#definition-DeviceFilterInput/index.html) |

##### Example

```json
{
  "id": "YWJjMTIzeHl6Nzg5",
  "createdAt": "2024-01-01T00:00:00.000Z",
  "updatedAt": "2024-01-15T00:00:00.000Z",
  "firstName": "John",
  "lastName": "Doe",
  "email": "user@example.com",
  "avatarUrl": "example",
  "state": "PENDING",
  "isAdmin": false,
  "role": "ADMIN",
  "type": "MANUAL",
  "groups": GroupConnection,
  "devices": DeviceConnection
}
```

[Types](/content/docs/api#group-Types/index.html)

## UserConnection

##### Fields

| Field Name | Description |
| --- | --- |
| `pageInfo` \- [`PageInfo!`](/content/docs/api#definition-PageInfo/index.html) | Pagination data for this connection. |
| `edges` \- [`[UserEdge!]!`](/content/docs/api#definition-UserEdge/index.html) | Contains the nodes in this connection. |
| `totalCount` \- [`Int!`](/content/docs/api#definition-Int/index.html) | A total count of items in the connection. |

##### Example

```json
{
  "pageInfo": PageInfo,
  "edges": [UserEdge],
  "totalCount": 10
}
```

[Types](/content/docs/api#group-Types/index.html)

## UserCreateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`User`](/content/docs/api#definition-User/index.html) | The User that was created. |

##### Example

```json
{"ok": true, "error": "example", "entity": User}
```

[Types](/content/docs/api#group-Types/index.html)

## UserDeleteMutation

##### Fields

##### Example

```json
{"ok": true, "error": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## UserDetailsUpdateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`User`](/content/docs/api#definition-User/index.html) | The User being updated. |

##### Example

```json
{"ok": true, "error": "example", "entity": User}
```

[Types](/content/docs/api#group-Types/index.html)

## UserEdge

##### Description

A Relay edge containing a `User` and its cursor.

##### Fields

| Field Name | Description |
| --- | --- |
| `node` \- [`User!`](/content/docs/api#definition-User/index.html) | The item at the end of the edge. |
| `cursor` \- [`String!`](/content/docs/api#definition-String/index.html) | A cursor for use in pagination |

##### Example

```json
{"node": User, "cursor": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## UserFilterInput

##### Fields

| Input Field | Description |
| --- | --- |
| `role` \- [`UserRoleFilterOperatorInput`](/content/docs/api#definition-UserRoleFilterOperatorInput/index.html) |  |
| `firstName` \- [`StringFilterOperatorInput`](/content/docs/api#definition-StringFilterOperatorInput/index.html) |  |
| `lastName` \- [`StringFilterOperatorInput`](/content/docs/api#definition-StringFilterOperatorInput/index.html) |  |
| `email` \- [`StringFilterOperatorInput`](/content/docs/api#definition-StringFilterOperatorInput/index.html) |  |

##### Example

```json
{
  "role": UserRoleFilterOperatorInput,
  "firstName": StringFilterOperatorInput,
  "lastName": StringFilterOperatorInput,
  "email": StringFilterOperatorInput
}
```

[Types](/content/docs/api#group-Types/index.html)

## UserIdFilterOperationInput

##### Description

Filter input object for a User ID 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` \- [`[ID!]`](/content/docs/api#definition-ID/index.html) |  |

##### Example

```json
{"in": ["abc123xyz789"]}
```

[Types](/content/docs/api#group-Types/index.html)

## UserResetMFAMutation

##### Fields

##### Example

```json
{"ok": true, "error": "example", "entity": User}
```

[Types](/content/docs/api#group-Types/index.html)

## 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 |
| `HELPDESK` | Read-only Admin Console access with MFA reset and device verification |
| `SUPPORT` | Read-only access to the Admin Console |
| `ACCESS_REVIEWER` | Access to Resource requests only |
| `BILLING` | Access to Billing functions only |
| `MEMBER` | No access to the Admin Console |

##### Example

```gql
"ADMIN"
```

[Types](/content/docs/api#group-Types/index.html)

## 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!]`](/content/docs/api#definition-UserRole/index.html) |  |

##### Example

```json
{"in": ["ADMIN"]}
```

[Types](/content/docs/api#group-Types/index.html)

## UserRoleUpdateMutation

##### Fields

##### Example

```json
{"ok": true, "error": "example", "entity": User}
```

[Types](/content/docs/api#group-Types/index.html)

## UserState

##### Values

| Enum Value | Description |
| --- | --- |
| `PENDING` |  |
| `ACTIVE` |  |
| `DISABLED` |  |

##### Example

```gql
"PENDING"
```

[Types](/content/docs/api#group-Types/index.html)

## UserStateUpdateInput

##### Values

| Enum Value | Description |
| --- | --- |
| `ACTIVE` |  |
| `DISABLED` |  |

##### Example

```gql
"ACTIVE"
```

[Types](/content/docs/api#group-Types/index.html)

## UserType

##### Values

| Enum Value | Description |
| --- | --- |
| `MANUAL` | Users manually invited to Twingate through email |
| `SYNCED` | Users synced to Twingate through an IdP |

##### Example

```gql
"MANUAL"
```

[Types](/content/docs/api#group-Types/index.html)

## WebAppDownstreamInput

##### Fields

##### Example

```json
{"port": 443}
```

[Types](/content/docs/api#group-Types/index.html)

## WebAppResource

##### Fields

##### Example

[Types](/content/docs/api#group-Types/index.html)

## WebAppResourceCreateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`WebAppResource`](/content/docs/api#definition-WebAppResource/index.html) | The Web App Resource that was created. |

##### Example

```json
{"ok": true, "error": "example", "entity": WebAppResource}
```

[Types](/content/docs/api#group-Types/index.html)

## WebAppResourceDownstream

##### Fields

| Field Name | Description |
| --- | --- |
| `port` \- [`Int!`](/content/docs/api#definition-Int/index.html) | The downstream port. |

##### Example

```json
{"port": 443}
```

[Types](/content/docs/api#group-Types/index.html)

## WebAppResourceUpdateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`WebAppResource`](/content/docs/api#definition-WebAppResource/index.html) | The Web App Resource being updated. |

##### Example

```json
{"ok": true, "error": "example", "entity": WebAppResource}
```

[Types](/content/docs/api#group-Types/index.html)

## WebAppResourceUpstream

##### Fields

| Field Name | Description |
| --- | --- |
| `port` \- [`Int!`](/content/docs/api#definition-Int/index.html) | The upstream port. |

##### Example

```json
{"port": 443}
```

[Types](/content/docs/api#group-Types/index.html)

## WebAppUpstreamInput

##### Fields

##### Example

```json
{"port": 443}
```

[Types](/content/docs/api#group-Types/index.html)

## X509CertificateAuthority

##### Fields

| Field Name | Description |
| --- | --- |
| `id` \- [`ID!`](/content/docs/api#definition-ID/index.html) | The ID of the object |
| `name` \- [`String!`](/content/docs/api#definition-String/index.html) | The name of the X509 Certificate Authority. |
| `fingerprint` \- [`String!`](/content/docs/api#definition-String/index.html) | The fingerprint of the X.509 Certificate Authority. |

##### Example

```json
{"id": "YWJjMTIzeHl6Nzg5", "name": "Example Name", "fingerprint": "example"}
```

[Types](/content/docs/api#group-Types/index.html)

## X509CertificateAuthorityCreateMutation

##### Fields

| Field Name | Description |
| --- | --- |
| `ok` \- [`Boolean!`](/content/docs/api#definition-Boolean/index.html) | Whether the mutation was successful. |
| `error` \- [`String`](/content/docs/api#definition-String/index.html) | Any error encountered causing the mutation to fail. |
| `entity` \- [`X509CertificateAuthority`](/content/docs/api#definition-X509CertificateAuthority/index.html) | The X509 Certificate Authority that was created. |

##### Example

```json
{
  "ok": true,
  "error": "example",
  "entity": X509CertificateAuthority
}
```

[Types](/content/docs/api#group-Types/index.html)

## X509CertificateAuthorityDeleteMutation

##### Fields

##### Example

```json
{"ok": true, "error": "example"}
```

[Documentation by Anvil SpectaQL](https://github.com/anvilco/spectaql)
