Skip to content

GraphQL Reference

IAM

IAM

This API will be the 'one' API that is used by both producers/consumers of mastered IAM data.

The GraphQL API provides query access to IAM entities including accounts, users, devices, groups, applications, organizations, roles, and permissions.

Contact

IAM Team

tcloud-iam-ug@trimble.com

License

internal

https://www.trimble.com

API Endpoints
# The IAM Staging API server:
https://cloud.stage.api.trimblecloud.com/platform/iam/1.0/graphql-apollo
# The IAM Production API server:
https://cloud.api.trimble.com/platform/iam/1.0/graphql
# Local development server:
http://localhost:8080/graphql
Headers
# JWT bearer token from Trimble Identity
Authorization: Bearer <YOUR_JWT_TOKEN>

Queries

account

Description

Get an account by its ID

Response

Returns an Account

Arguments
Name Description
id - ID!

Example

Query
query Account($id: ID!) {
  account(id: $id) {
    id
    trn
    name
    type
    customerType
    description
    status
    country
    shortCode
    transactionInfo {
      taxExemptionStatus
      taxVatId
      currency
      ebsAccountNumber
    }
    primaryContactInfo {
      email
      phoneNumber
    }
    addresses {
      edges {
        ...AddressEdgeFragment
      }
      pageInfo {
        ...PageInfoFragment
      }
    }
    address {
      node {
        ...AddressFragment
      }
    }
    externalSystems {
      sourceSystem {
        ...ExternalSystemReferenceFragment
      }
      references {
        ...ExternalSystemReferenceFragment
      }
    }
    metadata {
      createdBy
      createdAt
      updatedBy
      updatedAt
    }
    users {
      totalCount
      edges {
        ...UserInAccountEdgeFragment
      }
      pageInfo {
        ...PageInfoFragment
      }
    }
    user {
      node {
        ...UserFragment
      }
      default
      status
      roles {
        ...RolesConnectionFragment
      }
    }
    groups {
      edges {
        ...GroupEdgeFragment
      }
      pageInfo {
        ...PageInfoFragment
      }
    }
    applications {
      edges {
        ...ApplicationEdgeFragment
      }
      pageInfo {
        ...PageInfoFragment
      }
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "account": {
      "id": "4",
      "trn": "xyz789",
      "name": "abc123",
      "type": "xyz789",
      "customerType": "xyz789",
      "description": "xyz789",
      "status": "active",
      "country": "abc123",
      "shortCode": "abc123",
      "transactionInfo": AccountTransactionInfo,
      "primaryContactInfo": AccountPrimaryContactInfo,
      "addresses": AddressesConnection,
      "address": AddressEdge,
      "externalSystems": ExternalSystems,
      "metadata": Metadata,
      "users": UserInAccountConnection,
      "user": UserInAccountEdge,
      "groups": GroupsConnection,
      "applications": ApplicationsConnection
    }
  }
}

accounts

Description

List all accounts authorized for requesting client

Response

Returns an AccountsConnection

Arguments
Name Description
first - PageSize Default = 20
after - ID

Example

Query
query Accounts(
  $first: PageSize,
  $after: ID
) {
  accounts(
    first: $first,
    after: $after
  ) {
    edges {
      node {
        ...AccountFragment
      }
    }
    pageInfo {
      nextCursor
      prevCursor
      selfCursor
      firstCursor
    }
  }
}
Variables
{"first": 20, "after": 4}
Response
{
  "data": {
    "accounts": {
      "edges": [AccountEdge],
      "pageInfo": PageInfo
    }
  }
}

application

Description

Get an application by its ID

Response

Returns an Application

Arguments
Name Description
id - ID!

Example

Query
query Application($id: ID!) {
  application(id: $id) {
    id
    trn
    name
    displayName
    scopes {
      name
      developerDocumentation
      consentMessage
    }
    metadata {
      createdBy
      createdAt
      updatedBy
      updatedAt
    }
    grantTypes
    redirectUris
    logoutUris
    entityId
    assertionConsumerUrl
    x509RequestSigningCert
    isAuthnRequestSigned
    isAssertionsSigned
    certificates {
      certificate
      fingerprint
    }
    groups {
      edges {
        ...GroupEdgeFragment
      }
      pageInfo {
        ...PageInfoFragment
      }
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "application": {
      "id": "4",
      "trn": "abc123",
      "name": "abc123",
      "displayName": "abc123",
      "scopes": [ApplicationScope],
      "metadata": Metadata,
      "grantTypes": ["abc123"],
      "redirectUris": ["xyz789"],
      "logoutUris": ["abc123"],
      "entityId": "abc123",
      "assertionConsumerUrl": "abc123",
      "x509RequestSigningCert": "xyz789",
      "isAuthnRequestSigned": true,
      "isAssertionsSigned": false,
      "certificates": [ApplicationCertificate],
      "groups": GroupsConnection
    }
  }
}

cdhSyncAccount

Response

Returns a CdhSyncAccount

Arguments
Name Description
id - ID!

Example

Query
query CdhSyncAccount($id: ID!) {
  cdhSyncAccount(id: $id) {
    cdhId
    iamId
    isInIam
    canBeMigrated
    violations {
      field
      reason
    }
    sites {
      edges {
        ...CdhSyncSiteEdgeFragment
      }
      pageInfo {
        ...CdhSyncPageInfoFragment
      }
    }
    sourceSystems {
      edges {
        ...CdhSyncAccountSourceSystemEdgeFragment
      }
      pageInfo {
        ...CdhSyncPageInfoFragment
      }
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "cdhSyncAccount": {
      "cdhId": "4",
      "iamId": "4",
      "isInIam": false,
      "canBeMigrated": false,
      "violations": [CdhSyncError],
      "sites": CdhSyncSiteConnection,
      "sourceSystems": CdhSyncAccountSourceSystemConnection
    }
  }
}

cdhSyncAccountSourceSystem

Response

Returns a CdhSyncAccountSourceSystem

Arguments
Name Description
id - ID!

Example

Query
query CdhSyncAccountSourceSystem($id: ID!) {
  cdhSyncAccountSourceSystem(id: $id) {
    cdhId
    iamId
    iamRefId
    isInIam
    canBeMigrated
    violations {
      field
      reason
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "cdhSyncAccountSourceSystem": {
      "cdhId": 4,
      "iamId": 4,
      "iamRefId": "abc123",
      "isInIam": true,
      "canBeMigrated": true,
      "violations": [CdhSyncError]
    }
  }
}

cdhSyncSite

Response

Returns a CdhSyncSite

Arguments
Name Description
id - ID!

Example

Query
query CdhSyncSite($id: ID!) {
  cdhSyncSite(id: $id) {
    cdhId
    iamId
    isInIam
    canBeMigrated
    violations {
      field
      reason
    }
    sourceSystems {
      edges {
        ...CdhSyncSiteSourceSystemEdgeFragment
      }
      pageInfo {
        ...CdhSyncPageInfoFragment
      }
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "cdhSyncSite": {
      "cdhId": "4",
      "iamId": "4",
      "isInIam": true,
      "canBeMigrated": true,
      "violations": [CdhSyncError],
      "sourceSystems": CdhSyncSiteSourceSystemConnection
    }
  }
}

cdhSyncSiteSourceSystem

Response

Returns a CdhSyncSiteSourceSystem

Arguments
Name Description
id - ID!

Example

Query
query CdhSyncSiteSourceSystem($id: ID!) {
  cdhSyncSiteSourceSystem(id: $id) {
    cdhId
    iamId
    iamRefId
    isInIam
    canBeMigrated
    violations {
      field
      reason
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "cdhSyncSiteSourceSystem": {
      "cdhId": 4,
      "iamId": "4",
      "iamRefId": "abc123",
      "isInIam": false,
      "canBeMigrated": false,
      "violations": [CdhSyncError]
    }
  }
}

device

Description

get a device by its ID

Response

Returns a Device

Arguments
Name Description
id - ID!

Example

Query
query Device($id: ID!) {
  device(id: $id) {
    id
    trn
    serialNumber
    model
    manufacturer
    firmware
    description
    metadata {
      createdBy
      createdAt
      updatedBy
      updatedAt
    }
    accounts {
      edges {
        ...AccountEdgeFragment
      }
      pageInfo {
        ...PageInfoFragment
      }
    }
    certificates {
      edges {
        ...DeviceCertificateEdgeFragment
      }
      pageInfo {
        ...PageInfoFragment
      }
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "device": {
      "id": 4,
      "trn": "abc123",
      "serialNumber": "abc123",
      "model": "abc123",
      "manufacturer": "abc123",
      "firmware": "abc123",
      "description": "abc123",
      "metadata": Metadata,
      "accounts": AccountsConnection,
      "certificates": DeviceCertificateConnection
    }
  }
}

devices

Description

List all devices authorized for requesting client

Response

Returns a DeviceConnection

Arguments
Name Description
first - PageSize
after - ID

Example

Query
query Devices(
  $first: PageSize,
  $after: ID
) {
  devices(
    first: $first,
    after: $after
  ) {
    edges {
      node {
        ...DeviceFragment
      }
    }
    pageInfo {
      nextCursor
      prevCursor
      selfCursor
      firstCursor
    }
  }
}
Variables
{"first": PageSize, "after": 4}
Response
{
  "data": {
    "devices": {
      "edges": [DeviceEdge],
      "pageInfo": PageInfo
    }
  }
}

group

Description

get a group by its ID

Response

Returns a Group

Arguments
Name Description
id - ID!

Example

Query
query Group($id: ID!) {
  group(id: $id) {
    id
    trn
    name
    description
    metadata {
      createdBy
      createdAt
      updatedBy
      updatedAt
    }
    applications {
      edges {
        ...ApplicationInGroupEdgeFragment
      }
      pageInfo {
        ...PageInfoFragment
      }
    }
    devices {
      edges {
        ...DeviceEdgeFragment
      }
      pageInfo {
        ...PageInfoFragment
      }
    }
    users {
      edges {
        ...UserEdgeFragment
      }
      pageInfo {
        ...PageInfoFragment
      }
    }
    children {
      edges {
        ...GroupEdgeFragment
      }
      pageInfo {
        ...PageInfoFragment
      }
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "group": {
      "id": 4,
      "trn": "abc123",
      "name": "xyz789",
      "description": "xyz789",
      "metadata": Metadata,
      "applications": GroupApplicationConnection,
      "devices": DeviceConnection,
      "users": UsersConnection,
      "children": GroupsConnection
    }
  }
}

groups

Description

List all groups authorized for requesting client

Response

Returns a GroupsConnection

Arguments
Name Description
first - PageSize
after - ID

Example

Query
query Groups(
  $first: PageSize,
  $after: ID
) {
  groups(
    first: $first,
    after: $after
  ) {
    edges {
      node {
        ...GroupFragment
      }
    }
    pageInfo {
      nextCursor
      prevCursor
      selfCursor
      firstCursor
    }
  }
}
Variables
{"first": PageSize, "after": 4}
Response
{
  "data": {
    "groups": {
      "edges": [GroupEdge],
      "pageInfo": PageInfo
    }
  }
}

organization

Description

get an organization by its ID

Response

Returns an Organization

Arguments
Name Description
id - ID!

Example

Query
query Organization($id: ID!) {
  organization(id: $id) {
    id
    trn
    name
    website
    description
    industry
    primaryContactInfo {
      email
      firstName
      lastName
      phoneNumber
    }
    address {
      country
      region
      locality
      postalCode
      streetAddress
      postOfficeBoxNumber
    }
    metadata {
      createdBy
      createdAt
      updatedBy
      updatedAt
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "organization": {
      "id": "4",
      "trn": "abc123",
      "name": "xyz789",
      "website": "xyz789",
      "description": "xyz789",
      "industry": "abc123",
      "primaryContactInfo": OrganizationPrimaryContactInfo,
      "address": OrganizationAddress,
      "metadata": Metadata
    }
  }
}

permission

Description

get a permission by its ID

Response

Returns a Permission

Arguments
Name Description
id - ID!

Example

Query
query Permission($id: ID!) {
  permission(id: $id) {
    id
    trn
    action
    resource
    description
    metadata {
      createdBy
      createdAt
      updatedBy
      updatedAt
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "permission": {
      "id": 4,
      "trn": "xyz789",
      "action": "xyz789",
      "resource": "xyz789",
      "description": "abc123",
      "metadata": Metadata
    }
  }
}

permissions

Description

List all permissions authorized for requesting client

Response

Returns a PermissionsConnection

Arguments
Name Description
first - PageSize
after - ID

Example

Query
query Permissions(
  $first: PageSize,
  $after: ID
) {
  permissions(
    first: $first,
    after: $after
  ) {
    edges {
      node {
        ...PermissionFragment
      }
    }
    pageInfo {
      nextCursor
      prevCursor
      selfCursor
      firstCursor
    }
  }
}
Variables
{"first": PageSize, "after": 4}
Response
{
  "data": {
    "permissions": {
      "edges": [PermissionEdge],
      "pageInfo": PageInfo
    }
  }
}

role

Description

get a role by its ID

Response

Returns a Role

Arguments
Name Description
id - ID!

Example

Query
query Role($id: ID!) {
  role(id: $id) {
    id
    trn
    name
    permissions {
      edges {
        ...PermissionEdgeFragment
      }
      pageInfo {
        ...PageInfoFragment
      }
    }
    metadata {
      createdBy
      createdAt
      updatedBy
      updatedAt
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "role": {
      "id": 4,
      "trn": "xyz789",
      "name": "abc123",
      "permissions": PermissionsConnection,
      "metadata": Metadata
    }
  }
}

roles

Description

List all roles authorized for requesting client

Response

Returns a RolesConnection

Arguments
Name Description
first - PageSize
after - ID

Example

Query
query Roles(
  $first: PageSize,
  $after: ID
) {
  roles(
    first: $first,
    after: $after
  ) {
    edges {
      node {
        ...RoleFragment
      }
    }
    pageInfo {
      nextCursor
      prevCursor
      selfCursor
      firstCursor
    }
  }
}
Variables
{"first": PageSize, "after": 4}
Response
{
  "data": {
    "roles": {
      "edges": [RoleEdge],
      "pageInfo": PageInfo
    }
  }
}

searchAccountsByEmail

Description

Get accounts whose owner user email matches exactly (case-sensitive).

Response

Returns an AccountsConnection

Arguments
Name Description
email - String!
first - PageSize Default = 20
after - ID

Example

Query
query SearchAccountsByEmail(
  $email: String!,
  $first: PageSize,
  $after: ID
) {
  searchAccountsByEmail(
    email: $email,
    first: $first,
    after: $after
  ) {
    edges {
      node {
        ...AccountFragment
      }
    }
    pageInfo {
      nextCursor
      prevCursor
      selfCursor
      firstCursor
    }
  }
}
Variables
{
  "email": "xyz789",
  "first": 20,
  "after": "4"
}
Response
{
  "data": {
    "searchAccountsByEmail": {
      "edges": [AccountEdge],
      "pageInfo": PageInfo
    }
  }
}

searchAccountsByExternalSystem

Description

Get accounts by External System search

Response

Returns an AccountsConnection

Arguments
Name Description
refId - ID
id - ID
isSource - Boolean

Example

Query
query SearchAccountsByExternalSystem(
  $refId: ID,
  $id: ID,
  $isSource: Boolean
) {
  searchAccountsByExternalSystem(
    refId: $refId,
    id: $id,
    isSource: $isSource
  ) {
    edges {
      node {
        ...AccountFragment
      }
    }
    pageInfo {
      nextCursor
      prevCursor
      selfCursor
      firstCursor
    }
  }
}
Variables
{"refId": 4, "id": "4", "isSource": true}
Response
{
  "data": {
    "searchAccountsByExternalSystem": {
      "edges": [AccountEdge],
      "pageInfo": PageInfo
    }
  }
}

searchAccountsByName

Description

Get an account by its name

Response

Returns an AccountsConnection

Arguments
Name Description
name - String!
first - PageSize
after - ID

Example

Query
query SearchAccountsByName(
  $name: String!,
  $first: PageSize,
  $after: ID
) {
  searchAccountsByName(
    name: $name,
    first: $first,
    after: $after
  ) {
    edges {
      node {
        ...AccountFragment
      }
    }
    pageInfo {
      nextCursor
      prevCursor
      selfCursor
      firstCursor
    }
  }
}
Variables
{
  "name": "xyz789",
  "first": PageSize,
  "after": "4"
}
Response
{
  "data": {
    "searchAccountsByName": {
      "edges": [AccountEdge],
      "pageInfo": PageInfo
    }
  }
}

searchUsersByEmails

Description

get the users by their emails

Response

Returns a UsersConnection

Arguments
Name Description
emails - [String!]!

Example

Query
query SearchUsersByEmails($emails: [String!]!) {
  searchUsersByEmails(emails: $emails) {
    edges {
      node {
        ...UserFragment
      }
    }
    pageInfo {
      nextCursor
      prevCursor
      selfCursor
      firstCursor
    }
  }
}
Variables
{"emails": ["xyz789"]}
Response
{
  "data": {
    "searchUsersByEmails": {
      "edges": [UserEdge],
      "pageInfo": PageInfo
    }
  }
}

user

Description

get the current User

Response

Returns a User

Example

Query
query User {
  user {
    id
    trn
    defaultAccount {
      id
      trn
      name
      type
      customerType
      description
      status
      country
      shortCode
      transactionInfo {
        ...AccountTransactionInfoFragment
      }
      primaryContactInfo {
        ...AccountPrimaryContactInfoFragment
      }
      addresses {
        ...AddressesConnectionFragment
      }
      address {
        ...AddressEdgeFragment
      }
      externalSystems {
        ...ExternalSystemsFragment
      }
      metadata {
        ...MetadataFragment
      }
      users {
        ...UserInAccountConnectionFragment
      }
      user {
        ...UserInAccountEdgeFragment
      }
      groups {
        ...GroupsConnectionFragment
      }
      applications {
        ...ApplicationsConnectionFragment
      }
    }
    picture
    firstName
    lastName
    country
    language
    timezone
    state
    userName
    email
    metadata {
      createdBy
      createdAt
      updatedBy
      updatedAt
    }
    accounts {
      edges {
        ...AccountOfUserEdgeFragment
      }
      pageInfo {
        ...PageInfoFragment
      }
    }
    groups {
      edges {
        ...GroupEdgeFragment
      }
      pageInfo {
        ...PageInfoFragment
      }
    }
  }
}
Response
{
  "data": {
    "user": {
      "id": 4,
      "trn": "xyz789",
      "defaultAccount": Account,
      "picture": "xyz789",
      "firstName": "abc123",
      "lastName": "abc123",
      "country": "xyz789",
      "language": "abc123",
      "timezone": "abc123",
      "state": "xyz789",
      "userName": "abc123",
      "email": "xyz789",
      "metadata": Metadata,
      "accounts": AccountOfUserConnection,
      "groups": GroupsConnection
    }
  }
}

userWithId

Description

get a user by its ID

Response

Returns a User

Arguments
Name Description
id - ID!

Example

Query
query UserWithId($id: ID!) {
  userWithId(id: $id) {
    id
    trn
    defaultAccount {
      id
      trn
      name
      type
      customerType
      description
      status
      country
      shortCode
      transactionInfo {
        ...AccountTransactionInfoFragment
      }
      primaryContactInfo {
        ...AccountPrimaryContactInfoFragment
      }
      addresses {
        ...AddressesConnectionFragment
      }
      address {
        ...AddressEdgeFragment
      }
      externalSystems {
        ...ExternalSystemsFragment
      }
      metadata {
        ...MetadataFragment
      }
      users {
        ...UserInAccountConnectionFragment
      }
      user {
        ...UserInAccountEdgeFragment
      }
      groups {
        ...GroupsConnectionFragment
      }
      applications {
        ...ApplicationsConnectionFragment
      }
    }
    picture
    firstName
    lastName
    country
    language
    timezone
    state
    userName
    email
    metadata {
      createdBy
      createdAt
      updatedBy
      updatedAt
    }
    accounts {
      edges {
        ...AccountOfUserEdgeFragment
      }
      pageInfo {
        ...PageInfoFragment
      }
    }
    groups {
      edges {
        ...GroupEdgeFragment
      }
      pageInfo {
        ...PageInfoFragment
      }
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "userWithId": {
      "id": 4,
      "trn": "xyz789",
      "defaultAccount": Account,
      "picture": "xyz789",
      "firstName": "abc123",
      "lastName": "abc123",
      "country": "xyz789",
      "language": "xyz789",
      "timezone": "abc123",
      "state": "xyz789",
      "userName": "xyz789",
      "email": "xyz789",
      "metadata": Metadata,
      "accounts": AccountOfUserConnection,
      "groups": GroupsConnection
    }
  }
}

Types

Account

Fields
Field Name Description
id - ID!
trn - String!
name - String! The name of the account.
type - String! The account classification based on the purchasing persona.
customerType - String! The customer's classification based on account size. Size of 1 is
description - String A brief description of the account.
status - AccountStatus The activity status of an account. Accounts can either be
country - String The accounts's primary country of operation represented by ISO
shortCode - String A unique shortCode for the account. Shortcode is used by
transactionInfo - AccountTransactionInfo
primaryContactInfo - AccountPrimaryContactInfo
addresses - AddressesConnection
Arguments
first - PageSize
after - ID
address - AddressEdge
Arguments
id - ID!
externalSystems - ExternalSystems!
metadata - Metadata
users - UserInAccountConnection
Arguments
searchValue - String
filter - UserFilterInput
sort - UserSortInput
first - PageSize
after - ID
before - ID
user - UserInAccountEdge
Arguments
id - ID!
groups - GroupsConnection
Arguments
first - PageSize
after - ID
applications - ApplicationsConnection
Arguments
first - PageSize
after - ID
Example
{
  "id": 4,
  "trn": "abc123",
  "name": "abc123",
  "type": "abc123",
  "customerType": "abc123",
  "description": "abc123",
  "status": "active",
  "country": "abc123",
  "shortCode": "xyz789",
  "transactionInfo": AccountTransactionInfo,
  "primaryContactInfo": AccountPrimaryContactInfo,
  "addresses": AddressesConnection,
  "address": AddressEdge,
  "externalSystems": ExternalSystems,
  "metadata": Metadata,
  "users": UserInAccountConnection,
  "user": UserInAccountEdge,
  "groups": GroupsConnection,
  "applications": ApplicationsConnection
}

AccountApplicationsFilterInput

Fields
Input Field Description
provisioningStatus - [ApplicationProvisioningStatus!]
Example
{"provisioningStatus": ["AUTHORIZED"]}

AccountEdge

Fields
Field Name Description
node - Account!
Example
{"node": Account}

AccountOfUserConnection

Fields
Field Name Description
edges - [AccountOfUserEdge!]
pageInfo - PageInfo!
Example
{
  "edges": [AccountOfUserEdge],
  "pageInfo": PageInfo
}

AccountOfUserEdge

Fields
Field Name Description
node - Account!
default - Boolean
status - UserToAccountStatus
roles - RolesConnection
Example
{
  "node": Account,
  "default": true,
  "status": "COMMITTED",
  "roles": RolesConnection
}

AccountPrimaryContactInfo

Fields
Field Name Description
email - String The primary email address for the customer account.
phoneNumber - String The primary phone number for the customer account.
Example
{
  "email": "xyz789",
  "phoneNumber": "abc123"
}

AccountStatus

Values
Enum Value Description

active

inactive

Example
"active"

AccountTaxExemptionStatus

Values
Enum Value Description

tax_exempted

vat_exempted

no_exemption

Example
"tax_exempted"

AccountTransactionInfo

Fields
Field Name Description
taxExemptionStatus - AccountTaxExemptionStatus The tax exemption status of the account.
taxVatId - String The value-added tax identification number that identifies the
currency - String The account's primary currency of operation represented by ISO
ebsAccountNumber - String The Oracle id for the account.
Example
{
  "taxExemptionStatus": "tax_exempted",
  "taxVatId": "abc123",
  "currency": "xyz789",
  "ebsAccountNumber": "xyz789"
}

AccountsConnection

Fields
Field Name Description
edges - [AccountEdge!]
pageInfo - PageInfo!
Example
{
  "edges": [AccountEdge],
  "pageInfo": PageInfo
}

Address

Fields
Field Name Description
id - ID!
trn - String!
accountId - ID!
country - String! The ISO 3166-1 alpha-2 country code. For example, US
region - String! The region in which the locality is. For example, Colorado or another appropriate first-level administrative division.
locality - String! The locality in which the address is. For example, Westminster.
postalCode - String The postal code. For example, 80021.
addressLine1 - String Address lines 1-4 describe the address of the place, as per the conventions of its country or region.
addressLine2 - String
addressLine3 - String
addressLine4 - String
status - AddressStatus! The activity status of an address.
shipping - Shipping
billing - Billing
externalSystems - ExternalSystems!
metadata - Metadata
Example
{
  "id": "4",
  "trn": "xyz789",
  "accountId": "4",
  "country": "abc123",
  "region": "xyz789",
  "locality": "abc123",
  "postalCode": "xyz789",
  "addressLine1": "abc123",
  "addressLine2": "xyz789",
  "addressLine3": "abc123",
  "addressLine4": "abc123",
  "status": "active",
  "shipping": Shipping,
  "billing": Billing,
  "externalSystems": ExternalSystems,
  "metadata": Metadata
}

AddressEdge

Fields
Field Name Description
node - Address!
Example
{"node": Address}

AddressStatus

Values
Enum Value Description

active

inactive

Example
"active"

AddressesConnection

Fields
Field Name Description
edges - [AddressEdge!]
pageInfo - PageInfo!
Example
{
  "edges": [AddressEdge],
  "pageInfo": PageInfo
}

Application

Fields
Field Name Description
id - ID!
trn - String!
name - String! The name of the application.
displayName - String! Display name of the application
scopes - [ApplicationScope!] Scopes associated with the application.
metadata - Metadata
grantTypes - [String!] Grant types supported by the application
redirectUris - [String!] Redirect URIs for the application.
logoutUris - [String!] Logout URIs for the application
entityId - String
assertionConsumerUrl - String
x509RequestSigningCert - String
isAuthnRequestSigned - Boolean
isAssertionsSigned - Boolean
certificates - [ApplicationCertificate!]
groups - GroupsConnection Group references for an application.
Arguments
first - PageSize
after - ID
Example
{
  "id": 4,
  "trn": "xyz789",
  "name": "xyz789",
  "displayName": "xyz789",
  "scopes": [ApplicationScope],
  "metadata": Metadata,
  "grantTypes": ["abc123"],
  "redirectUris": ["abc123"],
  "logoutUris": ["xyz789"],
  "entityId": "abc123",
  "assertionConsumerUrl": "xyz789",
  "x509RequestSigningCert": "xyz789",
  "isAuthnRequestSigned": false,
  "isAssertionsSigned": false,
  "certificates": [ApplicationCertificate],
  "groups": GroupsConnection
}

ApplicationCertificate

Fields
Field Name Description
certificate - String!
fingerprint - String!
Example
{
  "certificate": "abc123",
  "fingerprint": "xyz789"
}

ApplicationEdge

Fields
Field Name Description
node - Application!
Example
{"node": Application}

ApplicationInGroupEdge

Fields
Field Name Description
node - Application
status - String
roleIds - [ID!]!
Example
{
  "node": Application,
  "status": "xyz789",
  "roleIds": ["4"]
}

ApplicationProvisioningStatus

Values
Enum Value Description

AUTHORIZED

SUBSCRIBED

DEAUTHORIZED

Example
"AUTHORIZED"

ApplicationScope

Fields
Field Name Description
name - String!
developerDocumentation - String
consentMessage - String
Example
{
  "name": "xyz789",
  "developerDocumentation": "abc123",
  "consentMessage": "abc123"
}

ApplicationsConnection

Fields
Field Name Description
edges - [ApplicationEdge!]
pageInfo - PageInfo!
Example
{
  "edges": [ApplicationEdge],
  "pageInfo": PageInfo
}

Billing

Fields
Field Name Description
isBillTo - Boolean Is this a billing address for the account in question?
isDefaultBillTo - Boolean Is this the default billing address for the account in question?
Example
{"isBillTo": false, "isDefaultBillTo": false}

Boolean

Description

The Boolean scalar type represents true or false.

CdhSyncAccount

Fields
Field Name Description
cdhId - ID!
iamId - ID
isInIam - Boolean!
canBeMigrated - Boolean!
violations - [CdhSyncError!]
sites - CdhSyncSiteConnection!
Arguments
first - PageSize
after - ID
sourceSystems - CdhSyncAccountSourceSystemConnection!
Arguments
first - PageSize
after - ID
Example
{
  "cdhId": 4,
  "iamId": "4",
  "isInIam": false,
  "canBeMigrated": false,
  "violations": [CdhSyncError],
  "sites": CdhSyncSiteConnection,
  "sourceSystems": CdhSyncAccountSourceSystemConnection
}

CdhSyncAccountSourceSystem

Fields
Field Name Description
cdhId - ID!
iamId - ID
iamRefId - String
isInIam - Boolean!
canBeMigrated - Boolean!
violations - [CdhSyncError!]
Example
{
  "cdhId": "4",
  "iamId": "4",
  "iamRefId": "abc123",
  "isInIam": false,
  "canBeMigrated": false,
  "violations": [CdhSyncError]
}

CdhSyncAccountSourceSystemConnection

Fields
Field Name Description
edges - [CdhSyncAccountSourceSystemEdge!]
pageInfo - CdhSyncPageInfo!
Example
{
  "edges": [CdhSyncAccountSourceSystemEdge],
  "pageInfo": CdhSyncPageInfo
}

CdhSyncAccountSourceSystemEdge

Fields
Field Name Description
node - CdhSyncAccountSourceSystem!
Example
{"node": CdhSyncAccountSourceSystem}

CdhSyncError

Description

CDH to IAM on demand synchronization

Fields
Field Name Description
field - String!
reason - String!
Example
{
  "field": "xyz789",
  "reason": "xyz789"
}

CdhSyncPageInfo

Fields
Field Name Description
endCursor - String
Example
{"endCursor": "xyz789"}

CdhSyncSite

Fields
Field Name Description
cdhId - ID!
iamId - ID
isInIam - Boolean!
canBeMigrated - Boolean!
violations - [CdhSyncError!]
sourceSystems - CdhSyncSiteSourceSystemConnection!
Arguments
first - PageSize
after - ID
Example
{
  "cdhId": "4",
  "iamId": "4",
  "isInIam": true,
  "canBeMigrated": false,
  "violations": [CdhSyncError],
  "sourceSystems": CdhSyncSiteSourceSystemConnection
}

CdhSyncSiteConnection

Fields
Field Name Description
edges - [CdhSyncSiteEdge!]
pageInfo - CdhSyncPageInfo!
Example
{
  "edges": [CdhSyncSiteEdge],
  "pageInfo": CdhSyncPageInfo
}

CdhSyncSiteEdge

Fields
Field Name Description
node - CdhSyncSite!
Example
{"node": CdhSyncSite}

CdhSyncSiteSourceSystem

Fields
Field Name Description
cdhId - ID!
iamId - ID
iamRefId - String
isInIam - Boolean!
canBeMigrated - Boolean!
violations - [CdhSyncError!]
Example
{
  "cdhId": 4,
  "iamId": 4,
  "iamRefId": "xyz789",
  "isInIam": true,
  "canBeMigrated": true,
  "violations": [CdhSyncError]
}

CdhSyncSiteSourceSystemConnection

Fields
Field Name Description
edges - [CdhSyncSiteSourceSystemEdge!]
pageInfo - CdhSyncPageInfo!
Example
{
  "edges": [CdhSyncSiteSourceSystemEdge],
  "pageInfo": CdhSyncPageInfo
}

CdhSyncSiteSourceSystemEdge

Fields
Field Name Description
node - CdhSyncSiteSourceSystem!
Example
{"node": CdhSyncSiteSourceSystem}

Device

Fields
Field Name Description
id - ID!
trn - String!
serialNumber - String! Device Serial Number.
model - String! Model to which the device belongs.
manufacturer - String! Manufacturer associated with the device.
firmware - String Firmware details of the device.
description - String Short note about device details.
metadata - Metadata
accounts - AccountsConnection
certificates - DeviceCertificateConnection
Arguments
first - PageSize
after - ID
Example
{
  "id": 4,
  "trn": "xyz789",
  "serialNumber": "abc123",
  "model": "xyz789",
  "manufacturer": "abc123",
  "firmware": "xyz789",
  "description": "abc123",
  "metadata": Metadata,
  "accounts": AccountsConnection,
  "certificates": DeviceCertificateConnection
}

DeviceCertificate

Fields
Field Name Description
id - ID!
trn - String!
certificate - String
name - String
expiryAtDateTime - String
thumbPrint - String
metadata - Metadata
Example
{
  "id": "4",
  "trn": "xyz789",
  "certificate": "xyz789",
  "name": "abc123",
  "expiryAtDateTime": "xyz789",
  "thumbPrint": "xyz789",
  "metadata": Metadata
}

DeviceCertificateConnection

Fields
Field Name Description
edges - [DeviceCertificateEdge!]
pageInfo - PageInfo!
Example
{
  "edges": [DeviceCertificateEdge],
  "pageInfo": PageInfo
}

DeviceCertificateEdge

Fields
Field Name Description
node - DeviceCertificate!
Example
{"node": DeviceCertificate}

DeviceConnection

Fields
Field Name Description
edges - [DeviceEdge!]
pageInfo - PageInfo!
Example
{
  "edges": [DeviceEdge],
  "pageInfo": PageInfo
}

DeviceEdge

Fields
Field Name Description
node - Device!
Example
{"node": Device}

Edge

Fields
Field Name Description
node - Node With the current implementation of pagination we cannot add the GraphQL recommended cursor attribute but should have the Edge interface for extensibility later.
Example
{"node": Node}

ExternalSystemReference

Fields
Field Name Description
system - String!
id - ID!
trn - String
refId - String!
Example
{
  "system": "xyz789",
  "id": 4,
  "trn": "xyz789",
  "refId": "xyz789"
}

ExternalSystems

Fields
Field Name Description
sourceSystem - ExternalSystemReference!
references - [ExternalSystemReference!]
Example
{
  "sourceSystem": ExternalSystemReference,
  "references": [ExternalSystemReference]
}

Group

Fields
Field Name Description
id - ID!
trn - String!
name - String! The name should be unique (case-insensitive) within the tenant account.
description - String
metadata - Metadata
applications - GroupApplicationConnection
Arguments
first - PageSize
after - ID
devices - DeviceConnection
Arguments
first - PageSize
after - ID
users - UsersConnection
Arguments
filter - GroupUsersFilter

Filter criteria used to narrow the users returned for the group.

first - PageSize
after - ID
children - GroupsConnection
Arguments
first - PageSize
after - ID
Example
{
  "id": "4",
  "trn": "xyz789",
  "name": "xyz789",
  "description": "abc123",
  "metadata": Metadata,
  "applications": GroupApplicationConnection,
  "devices": DeviceConnection,
  "users": UsersConnection,
  "children": GroupsConnection
}

GroupApplicationConnection

Fields
Field Name Description
edges - [ApplicationInGroupEdge!]!
pageInfo - PageInfo!
Example
{
  "edges": [ApplicationInGroupEdge],
  "pageInfo": PageInfo
}

GroupEdge

Fields
Field Name Description
node - Group!
Example
{"node": Group}

GroupUsersFilter

Description

Filter criteria used to narrow users returned for a group. Use this input on Group.users to return only users whose membership status matches one of the provided values.

Fields
Input Field Description
status - [UserToGroupStatus] Filter users by their user-to-group membership status. If omitted or empty, no status-based filtering is applied.
requestType - [UserToGroupRequestType] Filter users by the type of request that initiated their group membership. If omitted or empty, no request-type-based filtering is applied.
Example
{"status": ["COMMITTED"], "requestType": ["SELF_JOIN"]}

GroupsConnection

Fields
Field Name Description
edges - [GroupEdge!]
pageInfo - PageInfo!
Example
{
  "edges": [GroupEdge],
  "pageInfo": PageInfo
}

ID

Description

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

Example
"4"

Int

Description

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

Example
123

Metadata

Fields
Field Name Description
createdBy - String
createdAt - String
updatedBy - String
updatedAt - String
Example
{
  "createdBy": "abc123",
  "createdAt": "abc123",
  "updatedBy": "xyz789",
  "updatedAt": "xyz789"
}

Node

Fields
Field Name Description
id - ID!
trn - String!
metadata - Metadata
Example
{
  "id": "4",
  "trn": "xyz789",
  "metadata": Metadata
}

Organization

Fields
Field Name Description
id - ID!
trn - String!
name - String! The name of the organization. The name or website is mandatory
website - String! The website of the organization. The name or website is mandatory
description - String The description about the organization
industry - String The industry to which the organization belongs.
primaryContactInfo - OrganizationPrimaryContactInfo
address - OrganizationAddress
metadata - Metadata
Example
{
  "id": "4",
  "trn": "xyz789",
  "name": "xyz789",
  "website": "xyz789",
  "description": "xyz789",
  "industry": "abc123",
  "primaryContactInfo": OrganizationPrimaryContactInfo,
  "address": OrganizationAddress,
  "metadata": Metadata
}

OrganizationAddress

Fields
Field Name Description
country - String! The ISO 3166-1 alpha-2 country code. For example, US
region - String The region in which the locality is. For example, Colorado or another appropriate first-level administrative division.
locality - String The locality in which the street address is. For example, Westminster.
postalCode - String The postal code. For example, 80021.
streetAddress - String The street address. For example, 10368 Westmoor Dr.
postOfficeBoxNumber - String he post office box number. For example, 1234.
Example
{
  "country": "abc123",
  "region": "xyz789",
  "locality": "xyz789",
  "postalCode": "abc123",
  "streetAddress": "abc123",
  "postOfficeBoxNumber": "abc123"
}

OrganizationPrimaryContactInfo

Fields
Field Name Description
email - String The email address of the primary contact.
firstName - String The first name of the primary contact.
lastName - String The last name of the primary contact.
phoneNumber - String The phone number of the primary contact.
Example
{
  "email": "xyz789",
  "firstName": "xyz789",
  "lastName": "abc123",
  "phoneNumber": "abc123"
}

PageInfo

Fields
Field Name Description
nextCursor - ID
prevCursor - ID
selfCursor - ID
firstCursor - ID
Example
{
  "nextCursor": "4",
  "prevCursor": 4,
  "selfCursor": "4",
  "firstCursor": 4
}

PageSize

Description

PageSize is an integer value in the range (0, 50]

Example
PageSize

Permission

Fields
Field Name Description
id - ID!
trn - String!
action - String!
resource - String!
description - String
metadata - Metadata
Example
{
  "id": "4",
  "trn": "xyz789",
  "action": "abc123",
  "resource": "abc123",
  "description": "xyz789",
  "metadata": Metadata
}

PermissionEdge

Fields
Field Name Description
node - Permission!
Example
{"node": Permission}

PermissionsConnection

Fields
Field Name Description
edges - [PermissionEdge!]
pageInfo - PageInfo!
Example
{
  "edges": [PermissionEdge],
  "pageInfo": PageInfo
}

Role

Fields
Field Name Description
id - ID!
trn - String!
name - String!
permissions - PermissionsConnection
metadata - Metadata
Example
{
  "id": 4,
  "trn": "xyz789",
  "name": "abc123",
  "permissions": PermissionsConnection,
  "metadata": Metadata
}

RoleEdge

Fields
Field Name Description
node - Role!
Example
{"node": Role}

RolesConnection

Fields
Field Name Description
edges - [RoleEdge!]
pageInfo - PageInfo!
Example
{
  "edges": [RoleEdge],
  "pageInfo": PageInfo
}

Shipping

Fields
Field Name Description
isShipTo - Boolean
isDefaultShipTo - Boolean
Example
{"isShipTo": true, "isDefaultShipTo": true}

SortDirection

Values
Enum Value Description

ASC

DESC

Example
"ASC"

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

User

Fields
Field Name Description
id - ID!
trn - String!
defaultAccount - Account The Id of the default account of the user. This is the account that is used by default for all operations that require an account reference. A user can have multiple accounts but only one default account.
picture - String The pre-signed, limited-lifetime URL of the user's profile picture. This URL is valid for 24 hours only.
firstName - String The user's first name. This is the given name or personal name of the user.
lastName - String The user's last name. This is the family name or surname of the user.
country - String The country where the user resides. This should be a valid country name as per the ISO 3166-1 alpha-2 standard.The supported countries are
language - String The user's preferred language. This is used to personalize the user experience by displaying content in the chosen language. The format should be a restricted set of language codes with languages and regions as defined in the IANA language subtag registry.
timezone - String The user's timezone. This is used to display times in the user's local timezone. Should be a BCP 47-compatible timezone designator with short codes
state - String The state where the user resides. This should be a valid state name as per the ISO 3166-1 alpha-2 standard.State field is currently supported only for countries
userName - String The user's username. This is required for transient users who do not have an email address. Either the email or username is required for user identification.
email - String The user's email address. This is used for login and communication purposes. This is required for regular users. This field must be unique if provided. Either the email or username is required for user identification.
metadata - Metadata
accounts - AccountOfUserConnection
Arguments
first - PageSize
after - ID
groups - GroupsConnection
Arguments
filter - UserGroupsFilter
first - PageSize
after - ID
Example
{
  "id": 4,
  "trn": "abc123",
  "defaultAccount": Account,
  "picture": "xyz789",
  "firstName": "abc123",
  "lastName": "xyz789",
  "country": "abc123",
  "language": "xyz789",
  "timezone": "abc123",
  "state": "xyz789",
  "userName": "xyz789",
  "email": "xyz789",
  "metadata": Metadata,
  "accounts": AccountOfUserConnection,
  "groups": GroupsConnection
}

UserEdge

Fields
Field Name Description
node - User!
Example
{"node": User}

UserFilterInput

Fields
Input Field Description
status - [UserToAccountStatus]
roleName - [String]
Example
{
  "status": ["COMMITTED"],
  "roleName": ["abc123"]
}

UserGroupsFilter

Fields
Input Field Description
roleIds - [String]
status - [UserToGroupStatus]
Example
{
  "roleIds": ["xyz789"],
  "status": ["COMMITTED"]
}

UserInAccountConnection

Fields
Field Name Description
totalCount - Int
edges - [UserInAccountEdge!]
pageInfo - PageInfo!
Example
{
  "totalCount": 987,
  "edges": [UserInAccountEdge],
  "pageInfo": PageInfo
}

UserInAccountEdge

Fields
Field Name Description
node - User!
default - Boolean
status - UserToAccountStatus
roles - RolesConnection
Example
{
  "node": User,
  "default": false,
  "status": "COMMITTED",
  "roles": RolesConnection
}

UserSortField

Values
Enum Value Description

EMAIL

FIRST_NAME

LAST_NAME

STATUS

ROLE_NAME

Example
"EMAIL"

UserSortInput

Fields
Input Field Description
field - UserSortField
direction - SortDirection
Example
{"field": "EMAIL", "direction": "ASC"}

UserToAccountStatus

Values
Enum Value Description

COMMITTED

PENDING

FAILED

EXPIRED

Example
"COMMITTED"

UserToGroupRequestType

Description

Possible request type values that initiated a user-to-group membership.

Values
Enum Value Description

SELF_JOIN

EXISTING_USER_INVITE

NEW_USER_INVITE

Example
"SELF_JOIN"

UserToGroupStatus

Description

Possible status values existing between user and group.

Values
Enum Value Description

COMMITTED

PENDING

CANCELLED

REJECTED

Example
"COMMITTED"

UsersConnection

Fields
Field Name Description
edges - [UserEdge!]
pageInfo - PageInfo!
Example
{
  "edges": [UserEdge],
  "pageInfo": PageInfo
}