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}| Field | Type | Description |
|---|---|---|
id | ID | Unique identifier |
tenantId | String | Owning tenant ID |
name | String | Display name |
description | String | Detailed description |
remotePortalId | ID | External 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}| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier |
tenantId | ID | Owning tenant ID |
name | String | Route name |
description | String | Route description |
status | RouteStatus | Current status |
stops | [Stop] | List of stops |
track | AWSJSON | Route structure |
actionLog | [StopActionRecord] | Action history |
totalStops | Int | Number of stops |
RouteTemplate
A reusable workflow pattern.
type RouteTemplate { id: ID tenantId: ID name: String description: String stops: [Stop] track: AWSJSON}| Field | Type | Description |
|---|---|---|
id | ID | Unique identifier |
tenantId | ID | Owning tenant ID |
name | String | Template name |
description | String | Template description |
stops | [Stop] | List of stops |
track | AWSJSON | Template structure |
Stop
A station instance within a route.
type Stop { id: ID! type: StopType stationId: ID name: String status: String station: Station asynchronousChildren: Boolean}| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier |
type | StopType | Type of stop |
stationId | ID | Referenced station |
name | String | Display name |
status | String | Completion status |
station | Station | Full station object |
asynchronousChildren | Boolean | Children run in parallel |
StopActionRecord
A record of an action on a stop.
type StopActionRecord { action: String timestamp: AWSDateTime userId: String stopId: String stopName: String}| Field | Type | Description |
|---|---|---|
action | String | Action performed |
timestamp | AWSDateTime | When it happened |
userId | String | Who did it |
stopId | String | Which stop |
stopName | String | Stop 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}| Field | Type | Description |
|---|---|---|
id | String | User ID |
email | AWSEmail | User email |
enabled | Boolean | Account enabled |
group | String | User role/group |
groupModfified | AWSDateTime | Last role change |
created | AWSDateTime | Creation date |
modified | AWSDateTime | Last modification |
status | String | Account status |
tenant | Tenant | Associated tenant |
tenantId | String | Tenant 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}| Field | Type | Description |
|---|---|---|
id | ID! | Tenant ID |
planId | ID | Current plan |
trialPeriodDays | Int | Trial length |
trialPeriodTimestamp | Int | Trial start |
plan | Plan | Full plan details |
users | [User] | All users |
trialPeriod | TenantTrialPeriod | Trial status |
cancelPlanAt | Int | Scheduled cancellation |
deleteAccountFlag | Boolean | Deletion 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}| Field | Type | Description |
|---|---|---|
id | ID! | Plan ID |
title | String | Plan name |
price | Int | Price in cents |
priceSet | String | Billing period |
statementDescriptor | String | Bank statement text |
featureList | String | Features (JSON) |
totalUsers | Int | Max users allowed |
cancelAtPeriodEnd | Boolean | Pending cancellation |
totalActiveRoutes | Int | Max active routes |
totalTemplates | Int | Max 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}| Value | Description |
|---|---|
paused | Route is temporarily stopped |
active | Route is in progress |
completed | All stops finished |
cancelled | Route was terminated |
template | Template status |
Action
Instruction actions for building routes.
enum Action { addBefore addAfter addAsFirstChild addAsLastChild replace remove startWith}| Value | Description |
|---|---|
startWith | Create first stop |
addBefore | Insert before target |
addAfter | Insert after target |
addAsFirstChild | Add as first child |
addAsLastChild | Add as last child |
replace | Replace target stop |
remove | Remove target stop |
TrackType
Types of track elements.
enum TrackType { stop routeTemplate route}| Value | Description |
|---|---|
stop | A station stop |
routeTemplate | Embed a template |
route | Reference a route |
StopType
Types of stops.
enum StopType { station portal route}| Value | Description |
|---|---|
station | Regular station |
portal | External connection |
route | Nested route |
Scalar Types
The API uses standard GraphQL scalars plus AWS-specific types:
| Type | Description |
|---|---|
ID | Unique identifier |
String | UTF-8 string |
Int | 32-bit integer |
Boolean | true/false |
AWSDateTime | ISO 8601 datetime |
AWSEmail | Valid email address |
AWSJSON | JSON object |