Skip to content

Types

This page documents all GraphQL types, inputs, and enums used in the Stations API.

Object Types

Station

A workflow step definition.

type Station {
id: ID
tenantId: String
name: String
description: String
remotePortalId: ID
}
FieldTypeDescription
idIDUnique identifier
tenantIdStringOwning tenant ID
nameStringDisplay name
descriptionStringDetailed description
remotePortalIdIDExternal system reference

Route

An active workflow instance.

type Route {
id: ID!
tenantId: ID
name: String
description: String
status: RouteStatus
stops: [Stop]
track: AWSJSON
actionLog: [StopActionRecord]
totalStops: Int
}
FieldTypeDescription
idID!Unique identifier
tenantIdIDOwning tenant ID
nameStringRoute name
descriptionStringRoute description
statusRouteStatusCurrent status
stops[Stop]List of stops
trackAWSJSONRoute structure
actionLog[StopActionRecord]Action history
totalStopsIntNumber of stops

RouteTemplate

A reusable workflow pattern.

type RouteTemplate {
id: ID
tenantId: ID
name: String
description: String
stops: [Stop]
track: AWSJSON
}
FieldTypeDescription
idIDUnique identifier
tenantIdIDOwning tenant ID
nameStringTemplate name
descriptionStringTemplate description
stops[Stop]List of stops
trackAWSJSONTemplate structure

Stop

A station instance within a route.

type Stop {
id: ID!
type: StopType
stationId: ID
name: String
status: String
station: Station
asynchronousChildren: Boolean
}
FieldTypeDescription
idID!Unique identifier
typeStopTypeType of stop
stationIdIDReferenced station
nameStringDisplay name
statusStringCompletion status
stationStationFull station object
asynchronousChildrenBooleanChildren run in parallel

StopActionRecord

A record of an action on a stop.

type StopActionRecord {
action: String
timestamp: AWSDateTime
userId: String
stopId: String
stopName: String
}
FieldTypeDescription
actionStringAction performed
timestampAWSDateTimeWhen it happened
userIdStringWho did it
stopIdStringWhich stop
stopNameStringStop name for display

Portal

An external system connection.

type Portal {
id: ID!
tenantId: ID
name: String
}

User

A user account.

type User {
id: String
email: AWSEmail
enabled: Boolean
group: String
groupModfified: AWSDateTime
created: AWSDateTime
modified: AWSDateTime
status: String
tenant: Tenant
tenantId: String
}
FieldTypeDescription
idStringUser ID
emailAWSEmailUser email
enabledBooleanAccount enabled
groupStringUser role/group
groupModfifiedAWSDateTimeLast role change
createdAWSDateTimeCreation date
modifiedAWSDateTimeLast modification
statusStringAccount status
tenantTenantAssociated tenant
tenantIdStringTenant ID

Tenant

An account/organization.

type Tenant {
id: ID!
planId: ID
trialPeriodDays: Int
trialPeriodTimestamp: Int
plan: Plan
users: [User]
trialPeriod: TenantTrialPeriod
cancelPlanAt: Int
deleteAccountFlag: Boolean
}
FieldTypeDescription
idID!Tenant ID
planIdIDCurrent plan
trialPeriodDaysIntTrial length
trialPeriodTimestampIntTrial start
planPlanFull plan details
users[User]All users
trialPeriodTenantTrialPeriodTrial status
cancelPlanAtIntScheduled cancellation
deleteAccountFlagBooleanDeletion enabled

TenantTrialPeriod

Trial period status.

type TenantTrialPeriod {
trialPeriodTimestamp: Int
trialPeriodStatus: String
}

Plan

A subscription plan.

type Plan {
id: ID!
title: String
price: Int
priceSet: String
statementDescriptor: String
featureList: String
totalUsers: Int
cancelAtPeriodEnd: Boolean
totalActiveRoutes: Int
totalTemplates: Int
}
FieldTypeDescription
idID!Plan ID
titleStringPlan name
priceIntPrice in cents
priceSetStringBilling period
statementDescriptorStringBank statement text
featureListStringFeatures (JSON)
totalUsersIntMax users allowed
cancelAtPeriodEndBooleanPending cancellation
totalActiveRoutesIntMax active routes
totalTemplatesIntMax templates

PaymentMethod

A saved payment method.

type PaymentMethod {
id: String
paymentType: String
expirationDate: String
last4: Int
cardType: String
default: Boolean
}

SetupIntent

Stripe setup intent for payment.

type SetupIntent {
planId: String
clientSecret: String!
}

PreviewPlanChange

Plan change preview information.

type PreviewPlanChange {
nextInviceSubTotal: Int
newPlanTotal: Int
oldPlanTotal: Int
newPlanTotalRemaining: Int
oldPlanTotalUnused: Int
nextInvoiceTimestamp: Int
previousInvoiceTimestamp: Int
}

Charge

A payment charge record.

type Charge {
id: String
amount: Int
created: Int
paid: Boolean
paymentType: String
last4: String
refunded: Boolean
refundedAmount: Int
failureMessage: String
}

Invoice

A billing invoice.

type Invoice {
id: String
planId: String
amountPaid: Int
amountDue: Int
amountRemaining: Int
description: String
periodStart: Int
periodEnd: Int
pdfUrl: String
number: String
startingBalance: Int
planAmount: Int
}

MessageResult

Generic message response.

type MessageResult {
messageType: String!
message: String!
}

Input Types

AddStationInput

input AddStationInput {
name: String!
description: String
remotePortalId: ID
}

RouteInstructionsListInput

input RouteInstructionsListInput {
name: String!
id: ID
instructions: [RouteInstructionInput]!
}

RouteInstructionInput

input RouteInstructionInput {
trackType: TrackType
actionStationOrRouteTemplateId: ID
action: Action
actionTargetStopId: String
enableAsynchronousChildren: Boolean
}

ProcessInstructionsInput

input ProcessInstructionsInput {
id: ID
name: String!
instructions: [RouteInstructionInput]!
allStations: [AllStationsProcessInstructionsInput]!
allRouteTemplates: [AllRouteTemplatesProcessInstructionsInput]
allRoutes: [AllRoutesProcessInstructionsInput]
}

AllStationsProcessInstructionsInput

input AllStationsProcessInstructionsInput {
id: ID!
description: String
name: String
remotePortalId: ID
asynchronousChildren: Boolean
}

AllRouteTemplatesProcessInstructionsInput

input AllRouteTemplatesProcessInstructionsInput {
id: ID!
name: String!
description: String
track: AWSJSON!
stops: [StopInput]!
}

AllRoutesProcessInstructionsInput

input AllRoutesProcessInstructionsInput {
id: ID!
track: AWSJSON!
stops: [StopInput]!
}

StopInput

input StopInput {
id: ID!
name: String
stationId: ID
type: String
status: String
asynchronousChildren: Boolean
}

ContactUsInput

input ContactUsInput {
subject: String!
message: String!
captchaToken: String!
email: AWSEmail!
}

WebhookValidationInput

input WebhookValidationInput {
tenantId: String!
headers: String!
body: String!
}

ListChargesInput

input ListChargesInput {
perPage: Int
startingAfter: String
endingBefore: String
}

PaymentMethodInput

input PaymentMethodInput {
paymentType: String
expirationDate: String
last4: Int
cardType: String
default: Boolean
}

Enums

RouteStatus

enum RouteStatus {
paused
active
completed
cancelled
template
}
ValueDescription
pausedRoute is temporarily stopped
activeRoute is in progress
completedAll stops finished
cancelledRoute was terminated
templateTemplate status

Action

Instruction actions for building routes.

enum Action {
addBefore
addAfter
addAsFirstChild
addAsLastChild
replace
remove
startWith
}
ValueDescription
startWithCreate first stop
addBeforeInsert before target
addAfterInsert after target
addAsFirstChildAdd as first child
addAsLastChildAdd as last child
replaceReplace target stop
removeRemove target stop

TrackType

Types of track elements.

enum TrackType {
stop
routeTemplate
route
}
ValueDescription
stopA station stop
routeTemplateEmbed a template
routeReference a route

StopType

Types of stops.

enum StopType {
station
portal
route
}
ValueDescription
stationRegular station
portalExternal connection
routeNested route

Scalar Types

The API uses standard GraphQL scalars plus AWS-specific types:

TypeDescription
IDUnique identifier
StringUTF-8 string
Int32-bit integer
Booleantrue/false
AWSDateTimeISO 8601 datetime
AWSEmailValid email address
AWSJSONJSON object