FlightLogger GraphQL API Reference

This is the official FlightLogger GraphQL API reference page. Here you will find documentation for all queries and mutations that can be invoked via the API, along with the structure of the data they return.

For an introduction to using the API, please visit the API section inside FlightLogger’s Help Center, which you can access through your FlightLogger account.

In the Help Center, you will also find a wide array of other useful resources, relevant to both the API and FlightLogger in general.

FlightLogger also hosts an official playground which can be used to interact with the API:

GraphQL Playground

Terms of Service

https://flightlogger.net/tac

API Endpoints
https://api.flightlogger.net/graphql
Headers
Authorization: Bearer <YOUR_API_TOKEN>

Queries

bookings

Description

Find bookings in a timespan.

Response

Returns a BookingUnionConnection!

Arguments
Name Description
after - String Returns the elements in the list that come after the specified cursor.
all - Boolean If true, will also resolve resources that the requesting user is not associated with, provided they have permission.
before - String Returns the elements in the list that come before the specified cursor.
changedAfter - DateTime If provided, finds only entries created or updated after this date.
first - Int Returns the first n elements from the list.
from - DateTime If provided, finds only entries beginning after the date.
last - Int Returns the last n elements from the list.
statuses - [BookingStatusEnum!] If provided, will only return bookings whose lifecycle status matches one in the list.
subtypes - [BookingSubtypeEnum!] If provided, will only return bookings that match one of the provided subtypes.
to - DateTime If provided, finds only entries ending before the date.

Example

Query
query Bookings(
  $after: String,
  $all: Boolean,
  $before: String,
  $changedAfter: DateTime,
  $first: Int,
  $from: DateTime,
  $last: Int,
  $statuses: [BookingStatusEnum!],
  $subtypes: [BookingSubtypeEnum!],
  $to: DateTime
) {
  bookings(
    after: $after,
    all: $all,
    before: $before,
    changedAfter: $changedAfter,
    first: $first,
    from: $from,
    last: $last,
    statuses: $statuses,
    subtypes: $subtypes,
    to: $to
  ) {
    edges {
      cursor
      node {
        ... on ClassTheoryBooking {
          ...ClassTheoryBookingFragment
        }
        ... on ExamBooking {
          ...ExamBookingFragment
        }
        ... on ExtraTheoryBooking {
          ...ExtraTheoryBookingFragment
        }
        ... on MaintenanceBooking {
          ...MaintenanceBookingFragment
        }
        ... on MeetingBooking {
          ...MeetingBookingFragment
        }
        ... on MultiStudentBooking {
          ...MultiStudentBookingFragment
        }
        ... on OperationBooking {
          ...OperationBookingFragment
        }
        ... on ProgressTestBooking {
          ...ProgressTestBookingFragment
        }
        ... on RentalBooking {
          ...RentalBookingFragment
        }
        ... on SingleStudentBooking {
          ...SingleStudentBookingFragment
        }
        ... on TheoryReleaseBooking {
          ...TheoryReleaseBookingFragment
        }
        ... on TypeQuestionnaireBooking {
          ...TypeQuestionnaireBookingFragment
        }
      }
    }
    nodes {
      ... on ClassTheoryBooking {
        ...ClassTheoryBookingFragment
      }
      ... on ExamBooking {
        ...ExamBookingFragment
      }
      ... on ExtraTheoryBooking {
        ...ExtraTheoryBookingFragment
      }
      ... on MaintenanceBooking {
        ...MaintenanceBookingFragment
      }
      ... on MeetingBooking {
        ...MeetingBookingFragment
      }
      ... on MultiStudentBooking {
        ...MultiStudentBookingFragment
      }
      ... on OperationBooking {
        ...OperationBookingFragment
      }
      ... on ProgressTestBooking {
        ...ProgressTestBookingFragment
      }
      ... on RentalBooking {
        ...RentalBookingFragment
      }
      ... on SingleStudentBooking {
        ...SingleStudentBookingFragment
      }
      ... on TheoryReleaseBooking {
        ...TheoryReleaseBookingFragment
      }
      ... on TypeQuestionnaireBooking {
        ...TypeQuestionnaireBookingFragment
      }
    }
    pageInfo {
      endCursor
      hasNextPage
      hasPreviousPage
      startCursor
    }
  }
}
Variables
{
  "after": "abc123",
  "all": false,
  "before": "xyz789",
  "changedAfter": "2007-12-03T10:15:30Z",
  "first": 987,
  "from": "2007-12-03T10:15:30Z",
  "last": 987,
  "statuses": ["CANCELLED"],
  "subtypes": ["CLASS_THEORY"],
  "to": "2007-12-03T10:15:30Z"
}
Response
{
  "data": {
    "bookings": {
      "edges": [BookingUnionEdge],
      "nodes": [ClassTheoryBooking],
      "pageInfo": PageInfo
    }
  }
}

classTheories

Description

Gets class theory registrations within a time-frame.

Response

Returns a ClassTheoryConnection!

Arguments
Name Description
after - String Returns the elements in the list that come after the specified cursor.
all - Boolean If true, will also resolve resources that the requesting user is not associated with, provided they have permission.
before - String Returns the elements in the list that come before the specified cursor.
changedAfter - DateTime If provided, finds only entries created or updated after this date.
first - Int Returns the first n elements from the list.
from - DateTime If provided, finds only entries beginning after the date.
last - Int Returns the last n elements from the list.
to - DateTime If provided, finds only entries ending before the date.

Example

Query
query ClassTheories(
  $after: String,
  $all: Boolean,
  $before: String,
  $changedAfter: DateTime,
  $first: Int,
  $from: DateTime,
  $last: Int,
  $to: DateTime
) {
  classTheories(
    after: $after,
    all: $all,
    before: $before,
    changedAfter: $changedAfter,
    first: $first,
    from: $from,
    last: $last,
    to: $to
  ) {
    edges {
      cursor
      node {
        ...ClassTheoryFragment
      }
    }
    nodes {
      attachments {
        ...AttachmentFragment
      }
      audit {
        ...AuditInfoFragment
      }
      booking {
        ...ClassTheoryBookingFragment
      }
      class {
        ...ClassFragment
      }
      comment
      endsAt
      expensesInvoiceNumber
      id
      instructor {
        ...UserFragment
      }
      participations {
        ...TheoryParticipationFragment
      }
      startsAt
      subject
      subjectCategory {
        ...SubjectCategoryFragment
      }
    }
    pageInfo {
      endCursor
      hasNextPage
      hasPreviousPage
      startCursor
    }
  }
}
Variables
{
  "after": "xyz789",
  "all": false,
  "before": "xyz789",
  "changedAfter": "2007-12-03T10:15:30Z",
  "first": 987,
  "from": "2007-12-03T10:15:30Z",
  "last": 987,
  "to": "2007-12-03T10:15:30Z"
}
Response
{
  "data": {
    "classTheories": {
      "edges": [ClassTheoryEdge],
      "nodes": [ClassTheory],
      "pageInfo": PageInfo
    }
  }
}

classes

Description

Gets classes (groups of students).

Response

Returns a ClassConnection!

Arguments
Name Description
after - String Returns the elements in the list that come after the specified cursor.
before - String Returns the elements in the list that come before the specified cursor.
changedAfter - DateTime If provided, finds only entries created or updated after this date.
first - Int Returns the first n elements from the list.
last - Int Returns the last n elements from the list.

Example

Query
query Classes(
  $after: String,
  $before: String,
  $changedAfter: DateTime,
  $first: Int,
  $last: Int
) {
  classes(
    after: $after,
    before: $before,
    changedAfter: $changedAfter,
    first: $first,
    last: $last
  ) {
    edges {
      cursor
      node {
        ...ClassFragment
      }
    }
    nodes {
      audit {
        ...AuditInfoFragment
      }
      id
      name
      users {
        ...UserFragment
      }
    }
    pageInfo {
      endCursor
      hasNextPage
      hasPreviousPage
      startCursor
    }
  }
}
Variables
{
  "after": "xyz789",
  "before": "abc123",
  "changedAfter": "2007-12-03T10:15:30Z",
  "first": 123,
  "last": 123
}
Response
{
  "data": {
    "classes": {
      "edges": [ClassEdge],
      "nodes": [Class],
      "pageInfo": PageInfo
    }
  }
}

dutyTimes

Description

The duty times of the user, ordered by end time.

Response

Returns a DutyTimeConnection!

Arguments
Name Description
after - String Returns the elements in the list that come after the specified cursor.
all - Boolean If true, will also resolve resources that the requesting user is not associated with, provided they have permission.
before - String Returns the elements in the list that come before the specified cursor.
changedAfter - DateTime If provided, finds only entries created or updated after this date.
first - Int Returns the first n elements from the list.
from - DateTime If provided, finds only entries beginning after the date.
last - Int Returns the last n elements from the list.
to - DateTime If provided, finds only entries ending before the date.

Example

Query
query DutyTimes(
  $after: String,
  $all: Boolean,
  $before: String,
  $changedAfter: DateTime,
  $first: Int,
  $from: DateTime,
  $last: Int,
  $to: DateTime
) {
  dutyTimes(
    after: $after,
    all: $all,
    before: $before,
    changedAfter: $changedAfter,
    first: $first,
    from: $from,
    last: $last,
    to: $to
  ) {
    edges {
      cursor
      node {
        ...DutyTimeFragment
      }
    }
    nodes {
      audit {
        ...AuditInfoFragment
      }
      comment
      endsAt
      expensesInvoiceNumber
      id
      startsAt
      state
      user {
        ...UserFragment
      }
    }
    pageInfo {
      endCursor
      hasNextPage
      hasPreviousPage
      startCursor
    }
  }
}
Variables
{
  "after": "xyz789",
  "all": false,
  "before": "abc123",
  "changedAfter": "2007-12-03T10:15:30Z",
  "first": 987,
  "from": "2007-12-03T10:15:30Z",
  "last": 987,
  "to": "2007-12-03T10:15:30Z"
}
Response
{
  "data": {
    "dutyTimes": {
      "edges": [DutyTimeEdge],
      "nodes": [DutyTime],
      "pageInfo": PageInfo
    }
  }
}

exams

Response

Returns an ExamConnection!

Arguments
Name Description
after - String Returns the elements in the list that come after the specified cursor.
all - Boolean If true, will also resolve resources that the requesting user is not associated with, provided they have permission.
before - String Returns the elements in the list that come before the specified cursor.
changedAfter - DateTime If provided, finds only entries created or updated after this date.
first - Int Returns the first n elements from the list.
from - DateTime If provided, finds only entries beginning after the date.
last - Int Returns the last n elements from the list.
to - DateTime If provided, finds only entries ending before the date.

Example

Query
query Exams(
  $after: String,
  $all: Boolean,
  $before: String,
  $changedAfter: DateTime,
  $first: Int,
  $from: DateTime,
  $last: Int,
  $to: DateTime
) {
  exams(
    after: $after,
    all: $all,
    before: $before,
    changedAfter: $changedAfter,
    first: $first,
    from: $from,
    last: $last,
    to: $to
  ) {
    edges {
      cursor
      node {
        ...ExamFragment
      }
    }
    nodes {
      attachments {
        ...AttachmentFragment
      }
      audit {
        ...AuditInfoFragment
      }
      booking {
        ...ExamBookingFragment
      }
      class {
        ...ClassFragment
      }
      endsAt
      examiner {
        ...UserFragment
      }
      expensesInvoiceNumber
      id
      participations {
        ...ExamParticipationFragment
      }
      startsAt
      subjectCategory {
        ...SubjectCategoryFragment
      }
    }
    pageInfo {
      endCursor
      hasNextPage
      hasPreviousPage
      startCursor
    }
  }
}
Variables
{
  "after": "xyz789",
  "all": false,
  "before": "abc123",
  "changedAfter": "2007-12-03T10:15:30Z",
  "first": 123,
  "from": "2007-12-03T10:15:30Z",
  "last": 987,
  "to": "2007-12-03T10:15:30Z"
}
Response
{
  "data": {
    "exams": {
      "edges": [ExamEdge],
      "nodes": [Exam],
      "pageInfo": PageInfo
    }
  }
}

extraTheories

Description

Gets extra theory registrations within a time-frame.

Response

Returns an ExtraTheoryConnection!

Arguments
Name Description
after - String Returns the elements in the list that come after the specified cursor.
all - Boolean If true, will also resolve resources that the requesting user is not associated with, provided they have permission.
before - String Returns the elements in the list that come before the specified cursor.
changedAfter - DateTime If provided, finds only entries created or updated after this date.
first - Int Returns the first n elements from the list.
from - DateTime If provided, finds only entries beginning after the date.
last - Int Returns the last n elements from the list.
to - DateTime If provided, finds only entries ending before the date.

Example

Query
query ExtraTheories(
  $after: String,
  $all: Boolean,
  $before: String,
  $changedAfter: DateTime,
  $first: Int,
  $from: DateTime,
  $last: Int,
  $to: DateTime
) {
  extraTheories(
    after: $after,
    all: $all,
    before: $before,
    changedAfter: $changedAfter,
    first: $first,
    from: $from,
    last: $last,
    to: $to
  ) {
    edges {
      cursor
      node {
        ...ExtraTheoryFragment
      }
    }
    nodes {
      attachments {
        ...AttachmentFragment
      }
      audit {
        ...AuditInfoFragment
      }
      booking {
        ...ExtraTheoryBookingFragment
      }
      description
      endsAt
      expensesInvoiceNumber
      id
      incomeInvoiceNumber
      instructor {
        ...UserFragment
      }
      startsAt
      user {
        ...UserFragment
      }
    }
    pageInfo {
      endCursor
      hasNextPage
      hasPreviousPage
      startCursor
    }
  }
}
Variables
{
  "after": "xyz789",
  "all": true,
  "before": "xyz789",
  "changedAfter": "2007-12-03T10:15:30Z",
  "first": 987,
  "from": "2007-12-03T10:15:30Z",
  "last": 987,
  "to": "2007-12-03T10:15:30Z"
}
Response
{
  "data": {
    "extraTheories": {
      "edges": [ExtraTheoryEdge],
      "nodes": [ExtraTheory],
      "pageInfo": PageInfo
    }
  }
}

flights

Description

Find flights in span of days

Response

Returns a FlightConnection!

Arguments
Name Description
after - String Returns the elements in the list that come after the specified cursor.
all - Boolean If true, will also resolve resources that the requesting user is not associated with, provided they have permission.
before - String Returns the elements in the list that come before the specified cursor.
changedAfter - DateTime If provided, finds only entries created or updated after this date.
first - Int Returns the first n elements from the list.
from - DateTime If provided, finds only entries beginning after the date.
last - Int Returns the last n elements from the list.
to - DateTime If provided, finds only entries ending before the date.

Example

Query
query Flights(
  $after: String,
  $all: Boolean,
  $before: String,
  $changedAfter: DateTime,
  $first: Int,
  $from: DateTime,
  $last: Int,
  $to: DateTime
) {
  flights(
    after: $after,
    all: $all,
    before: $before,
    changedAfter: $changedAfter,
    first: $first,
    from: $from,
    last: $last,
    to: $to
  ) {
    edges {
      cursor
      node {
        ...FlightFragment
      }
    }
    nodes {
      accountingTransactions {
        ...AccountingTransactionFragment
      }
      activityRegistration {
        ...FlightRegistrationFragment
      }
      aircraft {
        ...AircraftFragment
      }
      arrivalAirport {
        ...AirportFragment
      }
      atSeconds
      audit {
        ...AuditInfoFragment
      }
      calculatedFuelUsage
      crossCountrySeconds
      daySeconds
      departureAirport {
        ...AirportFragment
      }
      departureFuel
      departureFuelAdded
      expensesInvoiceNumber
      flightType
      id
      ifSeconds
      ifrSeconds
      incomeInvoiceNumber
      landing
      landings {
        ...LandingFragment
      }
      localSeconds
      nightSeconds
      offBlock
      onBlock
      pilotFlyingSeconds
      pilotMonitoringSeconds
      takeoff
      timerFinishSeconds
      timerStartSeconds
      vfrSeconds
    }
    pageInfo {
      endCursor
      hasNextPage
      hasPreviousPage
      startCursor
    }
  }
}
Variables
{
  "after": "abc123",
  "all": true,
  "before": "xyz789",
  "changedAfter": "2007-12-03T10:15:30Z",
  "first": 987,
  "from": "2007-12-03T10:15:30Z",
  "last": 123,
  "to": "2007-12-03T10:15:30Z"
}
Response
{
  "data": {
    "flights": {
      "edges": [FlightEdge],
      "nodes": [Flight],
      "pageInfo": PageInfo
    }
  }
}

operations

Response

Returns an OperationConnection!

Arguments
Name Description
after - String Returns the elements in the list that come after the specified cursor.
all - Boolean If true, will also resolve resources that the requesting user is not associated with, provided they have permission.
before - String Returns the elements in the list that come before the specified cursor.
changedAfter - DateTime If provided, finds only entries created or updated after this date.
first - Int Returns the first n elements from the list.
from - DateTime If provided, finds only entries beginning after the date.
last - Int Returns the last n elements from the list.
to - DateTime If provided, finds only entries ending before the date.

Example

Query
query Operations(
  $after: String,
  $all: Boolean,
  $before: String,
  $changedAfter: DateTime,
  $first: Int,
  $from: DateTime,
  $last: Int,
  $to: DateTime
) {
  operations(
    after: $after,
    all: $all,
    before: $before,
    changedAfter: $changedAfter,
    first: $first,
    from: $from,
    last: $last,
    to: $to
  ) {
    edges {
      cursor
      node {
        ...OperationFragment
      }
    }
    nodes {
      asymmetricSeconds
      audit {
        ...AuditInfoFragment
      }
      booking {
        ...OperationBookingFragment
      }
      comment
      crew {
        ...UserFragment
      }
      crossCountrySeconds
      customer {
        ...CustomerFragment
      }
      expensesInvoiceNumber
      flights {
        ...FlightFragment
      }
      id
      ifrDualSeconds
      ifrSimSeconds
      ifrSpicSeconds
      incomeInvoiceNumber
      instrumentSeconds
      multiSeconds
      nightSeconds
      operationType {
        ...OperationTypeFragment
      }
      pic {
        ...UserFragment
      }
      pilotFlyingSeconds
      pilotMonitoringSeconds
      singleSeconds
      totalSeconds
      vfrDualSeconds
      vfrSimSeconds
      vfrSoloSeconds
      vfrSpicSeconds
    }
    pageInfo {
      endCursor
      hasNextPage
      hasPreviousPage
      startCursor
    }
  }
}
Variables
{
  "after": "abc123",
  "all": true,
  "before": "abc123",
  "changedAfter": "2007-12-03T10:15:30Z",
  "first": 123,
  "from": "2007-12-03T10:15:30Z",
  "last": 987,
  "to": "2007-12-03T10:15:30Z"
}
Response
{
  "data": {
    "operations": {
      "edges": [OperationEdge],
      "nodes": [Operation],
      "pageInfo": PageInfo
    }
  }
}

progressTests

Description

Gets progress test registrations within a time-frame.

Response

Returns a ProgressTestConnection!

Arguments
Name Description
after - String Returns the elements in the list that come after the specified cursor.
all - Boolean If true, will also resolve resources that the requesting user is not associated with, provided they have permission.
before - String Returns the elements in the list that come before the specified cursor.
changedAfter - DateTime If provided, finds only entries created or updated after this date.
first - Int Returns the first n elements from the list.
from - DateTime If provided, finds only entries beginning after the date.
last - Int Returns the last n elements from the list.
to - DateTime If provided, finds only entries ending before the date.

Example

Query
query ProgressTests(
  $after: String,
  $all: Boolean,
  $before: String,
  $changedAfter: DateTime,
  $first: Int,
  $from: DateTime,
  $last: Int,
  $to: DateTime
) {
  progressTests(
    after: $after,
    all: $all,
    before: $before,
    changedAfter: $changedAfter,
    first: $first,
    from: $from,
    last: $last,
    to: $to
  ) {
    edges {
      cursor
      node {
        ...ProgressTestFragment
      }
    }
    nodes {
      attachments {
        ...AttachmentFragment
      }
      audit {
        ...AuditInfoFragment
      }
      booking {
        ...ProgressTestBookingFragment
      }
      class {
        ...ClassFragment
      }
      comment
      endsAt
      expensesInvoiceNumber
      id
      instructor {
        ...UserFragment
      }
      participations {
        ...TheoryParticipationFragment
      }
      startsAt
      subject
      subjectCategory {
        ...SubjectCategoryFragment
      }
    }
    pageInfo {
      endCursor
      hasNextPage
      hasPreviousPage
      startCursor
    }
  }
}
Variables
{
  "after": "xyz789",
  "all": false,
  "before": "abc123",
  "changedAfter": "2007-12-03T10:15:30Z",
  "first": 123,
  "from": "2007-12-03T10:15:30Z",
  "last": 987,
  "to": "2007-12-03T10:15:30Z"
}
Response
{
  "data": {
    "progressTests": {
      "edges": [ProgressTestEdge],
      "nodes": [ProgressTest],
      "pageInfo": PageInfo
    }
  }
}

rentals

Response

Returns a RentalConnection!

Arguments
Name Description
after - String Returns the elements in the list that come after the specified cursor.
all - Boolean If true, will also resolve resources that the requesting user is not associated with, provided they have permission.
before - String Returns the elements in the list that come before the specified cursor.
changedAfter - DateTime If provided, finds only entries created or updated after this date.
first - Int Returns the first n elements from the list.
from - DateTime If provided, finds only entries beginning after the date.
last - Int Returns the last n elements from the list.
to - DateTime If provided, finds only entries ending before the date.

Example

Query
query Rentals(
  $after: String,
  $all: Boolean,
  $before: String,
  $changedAfter: DateTime,
  $first: Int,
  $from: DateTime,
  $last: Int,
  $to: DateTime
) {
  rentals(
    after: $after,
    all: $all,
    before: $before,
    changedAfter: $changedAfter,
    first: $first,
    from: $from,
    last: $last,
    to: $to
  ) {
    edges {
      cursor
      node {
        ...RentalFragment
      }
    }
    nodes {
      asymmetricSeconds
      audit {
        ...AuditInfoFragment
      }
      booking {
        ...RentalBookingFragment
      }
      comment
      crossCountrySeconds
      flights {
        ...FlightFragment
      }
      id
      ifrDualSeconds
      ifrSimSeconds
      ifrSpicSeconds
      instrumentSeconds
      multiSeconds
      nightSeconds
      pilotFlyingSeconds
      pilotMonitoringSeconds
      renter {
        ...UserFragment
      }
      singleSeconds
      totalSeconds
      vfrDualSeconds
      vfrSimSeconds
      vfrSoloSeconds
      vfrSpicSeconds
    }
    pageInfo {
      endCursor
      hasNextPage
      hasPreviousPage
      startCursor
    }
  }
}
Variables
{
  "after": "abc123",
  "all": true,
  "before": "abc123",
  "changedAfter": "2007-12-03T10:15:30Z",
  "first": 123,
  "from": "2007-12-03T10:15:30Z",
  "last": 987,
  "to": "2007-12-03T10:15:30Z"
}
Response
{
  "data": {
    "rentals": {
      "edges": [RentalEdge],
      "nodes": [Rental],
      "pageInfo": PageInfo
    }
  }
}

theoryReleases

Description

Gets theory release registrations within a time-frame.

Response

Returns a TheoryReleaseConnection!

Arguments
Name Description
after - String Returns the elements in the list that come after the specified cursor.
all - Boolean If true, will also resolve resources that the requesting user is not associated with, provided they have permission.
before - String Returns the elements in the list that come before the specified cursor.
changedAfter - DateTime If provided, finds only entries created or updated after this date.
first - Int Returns the first n elements from the list.
from - DateTime If provided, finds only entries beginning after the date.
last - Int Returns the last n elements from the list.
to - DateTime If provided, finds only entries ending before the date.

Example

Query
query TheoryReleases(
  $after: String,
  $all: Boolean,
  $before: String,
  $changedAfter: DateTime,
  $first: Int,
  $from: DateTime,
  $last: Int,
  $to: DateTime
) {
  theoryReleases(
    after: $after,
    all: $all,
    before: $before,
    changedAfter: $changedAfter,
    first: $first,
    from: $from,
    last: $last,
    to: $to
  ) {
    edges {
      cursor
      node {
        ...TheoryReleaseFragment
      }
    }
    nodes {
      attachments {
        ...AttachmentFragment
      }
      audit {
        ...AuditInfoFragment
      }
      booking {
        ...TheoryReleaseBookingFragment
      }
      class {
        ...ClassFragment
      }
      comment
      endsAt
      expensesInvoiceNumber
      id
      instructor {
        ...UserFragment
      }
      participations {
        ...TheoryParticipationFragment
      }
      startsAt
      subject
      subjectCategory {
        ...SubjectCategoryFragment
      }
    }
    pageInfo {
      endCursor
      hasNextPage
      hasPreviousPage
      startCursor
    }
  }
}
Variables
{
  "after": "abc123",
  "all": false,
  "before": "xyz789",
  "changedAfter": "2007-12-03T10:15:30Z",
  "first": 987,
  "from": "2007-12-03T10:15:30Z",
  "last": 987,
  "to": "2007-12-03T10:15:30Z"
}
Response
{
  "data": {
    "theoryReleases": {
      "edges": [TheoryReleaseEdge],
      "nodes": [TheoryRelease],
      "pageInfo": PageInfo
    }
  }
}

trainings

Description

training ( user lectures )

Response

Returns a TrainingConnection!

Arguments
Name Description
after - String Returns the elements in the list that come after the specified cursor.
all - Boolean If true, will also resolve resources that the requesting user is not associated with, provided they have permission.
before - String Returns the elements in the list that come before the specified cursor.
changedAfter - DateTime If provided, finds only entries created or updated after this date.
first - Int Returns the first n elements from the list.
from - DateTime If provided, finds only entries beginning after the date.
last - Int Returns the last n elements from the list.
to - DateTime If provided, finds only entries ending before the date.

Example

Query
query Trainings(
  $after: String,
  $all: Boolean,
  $before: String,
  $changedAfter: DateTime,
  $first: Int,
  $from: DateTime,
  $last: Int,
  $to: DateTime
) {
  trainings(
    after: $after,
    all: $all,
    before: $before,
    changedAfter: $changedAfter,
    first: $first,
    from: $from,
    last: $last,
    to: $to
  ) {
    edges {
      cursor
      node {
        ...TrainingFragment
      }
    }
    nodes {
      approvedByStudent
      asymmetricSeconds
      audit {
        ...AuditInfoFragment
      }
      booking {
        ... on MultiStudentBooking {
          ...MultiStudentBookingFragment
        }
        ... on SingleStudentBooking {
          ...SingleStudentBookingFragment
        }
      }
      briefingSeconds
      comment
      crossCountrySeconds
      debriefingSeconds
      flights {
        ...FlightFragment
      }
      id
      ifrDualSeconds
      ifrSimSeconds
      ifrSpicSeconds
      instructor {
        ...UserFragment
      }
      instrumentSeconds
      lecture {
        ...LectureFragment
      }
      multiSeconds
      name
      nightSeconds
      pilotFlyingSeconds
      pilotMonitoringSeconds
      singleSeconds
      status
      student {
        ...UserFragment
      }
      totalSeconds
      userProgram {
        ...UserProgramFragment
      }
      vfrDualSeconds
      vfrSimSeconds
      vfrSoloSeconds
      vfrSpicSeconds
    }
    pageInfo {
      endCursor
      hasNextPage
      hasPreviousPage
      startCursor
    }
  }
}
Variables
{
  "after": "xyz789",
  "all": false,
  "before": "abc123",
  "changedAfter": "2007-12-03T10:15:30Z",
  "first": 987,
  "from": "2007-12-03T10:15:30Z",
  "last": 987,
  "to": "2007-12-03T10:15:30Z"
}
Response
{
  "data": {
    "trainings": {
      "edges": [TrainingEdge],
      "nodes": [Training],
      "pageInfo": PageInfo
    }
  }
}

typeQuestionnaires

Description

Gets type questionnaire registrations within a time-frame.

Response

Returns a TypeQuestionnaireConnection!

Arguments
Name Description
after - String Returns the elements in the list that come after the specified cursor.
all - Boolean If true, will also resolve resources that the requesting user is not associated with, provided they have permission.
before - String Returns the elements in the list that come before the specified cursor.
changedAfter - DateTime If provided, finds only entries created or updated after this date.
first - Int Returns the first n elements from the list.
from - DateTime If provided, finds only entries beginning after the date.
last - Int Returns the last n elements from the list.
to - DateTime If provided, finds only entries ending before the date.

Example

Query
query TypeQuestionnaires(
  $after: String,
  $all: Boolean,
  $before: String,
  $changedAfter: DateTime,
  $first: Int,
  $from: DateTime,
  $last: Int,
  $to: DateTime
) {
  typeQuestionnaires(
    after: $after,
    all: $all,
    before: $before,
    changedAfter: $changedAfter,
    first: $first,
    from: $from,
    last: $last,
    to: $to
  ) {
    edges {
      cursor
      node {
        ...TypeQuestionnaireFragment
      }
    }
    nodes {
      attachments {
        ...AttachmentFragment
      }
      audit {
        ...AuditInfoFragment
      }
      booking {
        ...TypeQuestionnaireBookingFragment
      }
      class {
        ...ClassFragment
      }
      comment
      endsAt
      expensesInvoiceNumber
      id
      instructor {
        ...UserFragment
      }
      participations {
        ...TheoryParticipationFragment
      }
      startsAt
      subject
      subjectCategory {
        ...SubjectCategoryFragment
      }
    }
    pageInfo {
      endCursor
      hasNextPage
      hasPreviousPage
      startCursor
    }
  }
}
Variables
{
  "after": "xyz789",
  "all": true,
  "before": "xyz789",
  "changedAfter": "2007-12-03T10:15:30Z",
  "first": 987,
  "from": "2007-12-03T10:15:30Z",
  "last": 123,
  "to": "2007-12-03T10:15:30Z"
}
Response
{
  "data": {
    "typeQuestionnaires": {
      "edges": [TypeQuestionnaireEdge],
      "nodes": [TypeQuestionnaire],
      "pageInfo": PageInfo
    }
  }
}

user

Description

Find a user by ID.

Response

Returns a User

Arguments
Name Description
id - String

Example

Query
query User($id: String) {
  user(id: $id) {
    audit {
      createdAt
      createdById
      updatedAt
      updatedById
    }
    callSign
    contact {
      address
      city
      country
      dateOfBirth
      email
      phone
      zipcode
    }
    emergencyContact {
      address
      city
      country
      dateOfBirth
      email
      firstName
      lastName
      phone
      relation
      zipcode
    }
    firstName
    id
    lastName
    notes {
      adminNote
      instructorNote
      publicNote
    }
    references {
      caaRefNum
      reference
    }
  }
}
Variables
{"id": "xyz789"}
Response
{
  "data": {
    "user": {
      "audit": AuditInfo,
      "callSign": "abc123",
      "contact": UserContact,
      "emergencyContact": UserEmergencyContact,
      "firstName": "xyz789",
      "id": "abc123",
      "lastName": "abc123",
      "notes": UserNotes,
      "references": UserReferences
    }
  }
}

users

Description

Get active users.

Response

Returns a UserConnection!

Arguments
Name Description
after - String Returns the elements in the list that come after the specified cursor.
before - String Returns the elements in the list that come before the specified cursor.
caaReferenceNumber - String If provided, will only return users whose CAA reference number matches this value.
callSign - String If provided, will only return users whose call sign matches this value.
changedAfter - DateTime If provided, finds only entries created or updated after this date.
email - String If provided, will only return users whose email matches this value.
first - Int Returns the first n elements from the list.
last - Int Returns the last n elements from the list.
reference - String If provided, will only return users whose reference string matches this value.
roles - [UserRoleEnum!] If provided, will only return who has all roles in the collection.
searchTerm - String NOTE: Marked for imminent deprecation. Avoid using if at all possible.

Example

Query
query Users(
  $after: String,
  $before: String,
  $caaReferenceNumber: String,
  $callSign: String,
  $changedAfter: DateTime,
  $email: String,
  $first: Int,
  $last: Int,
  $reference: String,
  $roles: [UserRoleEnum!],
  $searchTerm: String
) {
  users(
    after: $after,
    before: $before,
    caaReferenceNumber: $caaReferenceNumber,
    callSign: $callSign,
    changedAfter: $changedAfter,
    email: $email,
    first: $first,
    last: $last,
    reference: $reference,
    roles: $roles,
    searchTerm: $searchTerm
  ) {
    edges {
      cursor
      node {
        ...UserFragment
      }
    }
    nodes {
      audit {
        ...AuditInfoFragment
      }
      callSign
      contact {
        ...UserContactFragment
      }
      emergencyContact {
        ...UserEmergencyContactFragment
      }
      firstName
      id
      lastName
      notes {
        ...UserNotesFragment
      }
      references {
        ...UserReferencesFragment
      }
    }
    pageInfo {
      endCursor
      hasNextPage
      hasPreviousPage
      startCursor
    }
  }
}
Variables
{
  "after": "abc123",
  "before": "xyz789",
  "caaReferenceNumber": "xyz789",
  "callSign": "xyz789",
  "changedAfter": "2007-12-03T10:15:30Z",
  "email": "abc123",
  "first": 123,
  "last": 123,
  "reference": "xyz789",
  "roles": ["ADMINISTRATOR"],
  "searchTerm": "xyz789"
}
Response
{
  "data": {
    "users": {
      "edges": [UserEdge],
      "nodes": [User],
      "pageInfo": PageInfo
    }
  }
}

versions

Description

Find changes done (versions) to entities in a timespan.

Response

Returns a VersionUnionConnection!

Arguments
Name Description
after - String Returns the elements in the list that come after the specified cursor.
before - String Returns the elements in the list that come before the specified cursor.
first - Int Returns the first n elements from the list.
from - DateTime If provided, finds only entries beginning after the date.
last - Int Returns the last n elements from the list.
to - DateTime If provided, finds only entries ending before the date.
types - [VersionableEntityEnum!] The types of entities to search for.

Example

Query
query Versions(
  $after: String,
  $before: String,
  $first: Int,
  $from: DateTime,
  $last: Int,
  $to: DateTime,
  $types: [VersionableEntityEnum!]
) {
  versions(
    after: $after,
    before: $before,
    first: $first,
    from: $from,
    last: $last,
    to: $to,
    types: $types
  ) {
    edges {
      cursor
      node {
        ... on Deletion {
          ...DeletionFragment
        }
      }
    }
    nodes {
      ... on Deletion {
        ...DeletionFragment
      }
    }
    pageInfo {
      endCursor
      hasNextPage
      hasPreviousPage
      startCursor
    }
  }
}
Variables
{
  "after": "xyz789",
  "before": "xyz789",
  "first": 987,
  "from": "2007-12-03T10:15:30Z",
  "last": 987,
  "to": "2007-12-03T10:15:30Z",
  "types": ["BOOKING"]
}
Response
{
  "data": {
    "versions": {
      "edges": [VersionUnionEdge],
      "nodes": [Deletion],
      "pageInfo": PageInfo
    }
  }
}

Types

AccountingTransaction

Description

Represents a transfer of credit in the Student Accounting Module.

Fields
Field Name Description
audit - AuditInfo
balanceCents - Int The remaining amount of credit.
balanceCurrency - String The currency of the account balance.
comment - String
id - Id!
priceCents - Int The amount of credit charged.
priceCurrency - String The currency of the credit transfer.
Example
{
  "audit": AuditInfo,
  "balanceCents": 123,
  "balanceCurrency": "abc123",
  "comment": "abc123",
  "id": Id,
  "priceCents": 987,
  "priceCurrency": "abc123"
}

Aircraft

Description

An aircraft.

Fields
Field Name Description
aircraftClass - AircraftClassEnum! The classification of the aircraft.
aircraftType - AircraftTypeEnum!
audit - AuditInfo
callSign - String!
currentAirport - Airport
defaultEngineType - EngineTypeEnum Default simulated engine type. Applies only to simulators.
defaultPMF - PmfTypeEnum The default PM/PF value. Null if PM/PF is not enabled.
disabled - Boolean!
fuelCoefficient - Float
fuelCoefficientMeasurement - FuelMeasurementUnitEnum
fuelCoefficientUnit - FuelCoefficientBasisEnum
homeAirport - Airport
id - Id!
model - String! The aircraft model-number.
taxiInTime - Int! Default taxi in time, in minutes.
taxiOutTime - Int! Default taxi out time, in minutes.
timerSeconds - Int Current value of the timer.
totalFuel - Float
typeOfTimer - FlightTimerEnum!
typeOfTimerMeasurement - DurationFormatEnum!
Example
{
  "aircraftClass": "MULTI_ENGINE",
  "aircraftType": "AIRPLANE",
  "audit": AuditInfo,
  "callSign": "abc123",
  "currentAirport": Airport,
  "defaultEngineType": "MULTI_ENGINE",
  "defaultPMF": "PILOT_FLYING",
  "disabled": false,
  "fuelCoefficient": 987.65,
  "fuelCoefficientMeasurement": "LITERS",
  "fuelCoefficientUnit": "AIRBORNE",
  "homeAirport": Airport,
  "id": Id,
  "model": "xyz789",
  "taxiInTime": 987,
  "taxiOutTime": 123,
  "timerSeconds": 123,
  "totalFuel": 987.65,
  "typeOfTimer": "AIRSWITCH",
  "typeOfTimerMeasurement": "DECIMAL_HOURS"
}

AircraftBooking

Description

Fields common to all bookings tied to aircraft.

Fields
Field Name Description
aircraft - Aircraft Will only be null if the requesting user is not allowed to read it.
arrivalAirport - Airport
departureAirport - Airport
flightEndsAt - DateTime!
flightStartsAt - DateTime!
Example
{
  "aircraft": Aircraft,
  "arrivalAirport": Airport,
  "departureAirport": Airport,
  "flightEndsAt": "2007-12-03T10:15:30Z",
  "flightStartsAt": "2007-12-03T10:15:30Z"
}

AircraftClassEnum

Description

Aircraft engine class.

Values
Enum Value Description

MULTI_ENGINE

SIMULATOR

SINGLE_ENGINE

Example
"MULTI_ENGINE"

AircraftTypeEnum

Description

Aircraft/vessel type.

Values
Enum Value Description

AIRPLANE

HELICOPTER

Example
"AIRPLANE"

Airport

Description

An airport.

Fields
Field Name Description
audit - AuditInfo
id - Id!
name - String! The name given to the airport.
Example
{
  "audit": AuditInfo,
  "id": Id,
  "name": "abc123"
}

Attachment

Description

A file attached to another entity.

Fields
Field Name Description
audit - AuditInfo
fileName - String! The name of the underlying file.
fileType - String The file type of the underlying file.
fileUrl - String Address used to retrieve the underlying file.
id - String!
Example
{
  "audit": AuditInfo,
  "fileName": "xyz789",
  "fileType": "abc123",
  "fileUrl": "abc123",
  "id": "xyz789"
}

AttendanceStatusEnum

Description

Represents a user's attendance as part of a theory registration.

Values
Enum Value Description

ATTENDED

DID_NOT_ATTEND

PARTIALLY_ATTENDED

Example
"ATTENDED"

AuditInfo

Description

Fields pertaining to auditing (modification history tracking) of an entity.

Fields
Field Name Description
createdAt - DateTime
createdById - Id
updatedAt - DateTime
updatedById - Id
Example
{
  "createdAt": "2007-12-03T10:15:30Z",
  "createdById": Id,
  "updatedAt": "2007-12-03T10:15:30Z",
  "updatedById": Id
}

Auditable

Booking

Description

Fields common to all booking types.

Fields
Field Name Description
comment - String
emailNotifications - Boolean! Whether or not email notifications will be sent to participants when changes are made to the booking.
endsAt - DateTime!
id - String!
startsAt - DateTime!
status - BookingStatusEnum! The current lifecycle status of the booking.
Example
{
  "comment": "abc123",
  "emailNotifications": false,
  "endsAt": "2007-12-03T10:15:30Z",
  "id": "xyz789",
  "startsAt": "2007-12-03T10:15:30Z",
  "status": "CANCELLED"
}

BookingCancellation

Description

A cancellation of a booking, stating the reasoning why.

Fields
Field Name Description
audit - AuditInfo
booking - BookingUnion!
comment - String
id - String
title - String!
user - User
Example
{
  "audit": AuditInfo,
  "booking": ClassTheoryBooking,
  "comment": "abc123",
  "id": "abc123",
  "title": "abc123",
  "user": User
}

BookingStatusEnum

Description

The current state of the bookings' lifecycle

Values
Enum Value Description

CANCELLED

COMPLETED

OPEN

Example
"CANCELLED"

BookingSubtypeEnum

Values
Enum Value Description

CLASS_THEORY

EXAM

EXTRA_THEORY

MAINTENANCE

MEETING

MULTI_STUDENT

OPERATION

PROGRESS_TEST

RENTAL

SINGLE_STUDENT

THEORY_RELEASE

TYPE_QUESTIONNAIRE

Example
"CLASS_THEORY"

BookingUnion

BookingUnionConnection

Description

The connection type for BookingUnion.

Fields
Field Name Description
edges - [BookingUnionEdge] A list of edges.
nodes - [BookingUnion] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
Example
{
  "edges": [BookingUnionEdge],
  "nodes": [ClassTheoryBooking],
  "pageInfo": PageInfo
}

BookingUnionEdge

Description

An edge in a connection.

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

Boolean

Description

The Boolean scalar type represents true or false.

Class

Description

A class with a cohort of students.

Fields
Field Name Description
audit - AuditInfo
id - String!
name - String!
users - [User]!
Example
{
  "audit": AuditInfo,
  "id": "xyz789",
  "name": "abc123",
  "users": [User]
}

ClassConnection

Description

The connection type for Class.

Fields
Field Name Description
edges - [ClassEdge] A list of edges.
nodes - [Class] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
Example
{
  "edges": [ClassEdge],
  "nodes": [Class],
  "pageInfo": PageInfo
}

ClassEdge

Description

An edge in a connection.

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

ClassTheory

Description

A class theory registration.

Fields
Field Name Description
attachments - [Attachment]
audit - AuditInfo
booking - ClassTheoryBooking
class - Class
comment - String
endsAt - DateTime
expensesInvoiceNumber - String Only present if an expense invoice is filled.
id - String!
instructor - User Will only be null if the requesting user is not allowed to read.
participations - [TheoryParticipation]!
startsAt - DateTime!
subject - String
subjectCategory - SubjectCategory Will only be null if the requesting user is not allowed to read it.
Example
{
  "attachments": [Attachment],
  "audit": AuditInfo,
  "booking": ClassTheoryBooking,
  "class": Class,
  "comment": "xyz789",
  "endsAt": "2007-12-03T10:15:30Z",
  "expensesInvoiceNumber": "xyz789",
  "id": "abc123",
  "instructor": User,
  "participations": [TheoryParticipation],
  "startsAt": "2007-12-03T10:15:30Z",
  "subject": "xyz789",
  "subjectCategory": SubjectCategory
}

ClassTheoryBooking

Description

A booking for a class theory.

Fields
Field Name Description
audit - AuditInfo
class - Class
classroom - Classroom The location (i.e. classroom) in which the booking will take place. Will only be null if the requesting user is not allowed to read it.
comment - String
emailNotifications - Boolean! Whether or not email notifications will be sent to participants when changes are made to the booking.
endsAt - DateTime!
id - String!
instructor - User The instructor/examiner slated to oversee the booking. Will only be null if the requesting user is not allowed to read it.
startsAt - DateTime!
status - BookingStatusEnum! The current lifecycle status of the booking.
students - [User]! Students slated to participate in the activity.
subject - String
theoryCourse - TheoryCourse Will only be null if the requesting user is not allowed to read it.
Example
{
  "audit": AuditInfo,
  "class": Class,
  "classroom": Classroom,
  "comment": "abc123",
  "emailNotifications": true,
  "endsAt": "2007-12-03T10:15:30Z",
  "id": "abc123",
  "instructor": User,
  "startsAt": "2007-12-03T10:15:30Z",
  "status": "CANCELLED",
  "students": [User],
  "subject": "xyz789",
  "theoryCourse": TheoryCourse
}

ClassTheoryConnection

Description

The connection type for ClassTheory.

Fields
Field Name Description
edges - [ClassTheoryEdge] A list of edges.
nodes - [ClassTheory] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
Example
{
  "edges": [ClassTheoryEdge],
  "nodes": [ClassTheory],
  "pageInfo": PageInfo
}

ClassTheoryEdge

Description

An edge in a connection.

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

Classroom

Description

A ground school location (usually a classroom, briefing room, conference room, etc.).

Fields
Field Name Description
audit - AuditInfo
id - Id!
name - String!
Example
{
  "audit": AuditInfo,
  "id": Id,
  "name": "xyz789"
}

Customer

Description

A customer. Used during operations.

Fields
Field Name Description
address - String
audit - AuditInfo
city - String
company - String
email - String
fullName - String
id - String!
name - String! A short representation of the name of the customer.
phone - String
zipCode - String
Example
{
  "address": "xyz789",
  "audit": AuditInfo,
  "city": "abc123",
  "company": "abc123",
  "email": "abc123",
  "fullName": "xyz789",
  "id": "abc123",
  "name": "abc123",
  "phone": "xyz789",
  "zipCode": "abc123"
}

Date

Example
"2007-12-03"

DateTime

Example
"2007-12-03T10:15:30Z"

Deletion

Description

Represents the deletion of an entity.

Fields
Field Name Description
entityId - Id! The id of the entity.
entityType - VersionableEntityEnum! The type of the entity.
eventType - VersionEventTypeEnum! The type of versioning that took place.
happenedAt - DateTime! The point in time at which the event took place.
whoDoneIt - User The instigator of the event.
Example
{
  "entityId": Id,
  "entityType": "BOOKING",
  "eventType": "DELETION",
  "happenedAt": "2007-12-03T10:15:30Z",
  "whoDoneIt": User
}

DurationFormatEnum

Description

Format of a duration of time.

Values
Enum Value Description

DECIMAL_HOURS

Decimal number of hours representation. Example: 2.25 (2 hours and 15 minutes)

HOURS_MINUTES

Digital clock representation. Example: 2:15 (2 hours and 15 minutes)
Example
"DECIMAL_HOURS"

DutyTime

Description

A duty time registration.

Fields
Field Name Description
audit - AuditInfo
comment - String
endsAt - DateTime!
expensesInvoiceNumber - String Only present if an expense invoice is filled.
id - Id!
startsAt - DateTime!
state - DutyTimeStateEnum!
user - User Will only be null if the requesting user is not allowed to read it.
Example
{
  "audit": AuditInfo,
  "comment": "xyz789",
  "endsAt": "2007-12-03T10:15:30Z",
  "expensesInvoiceNumber": "xyz789",
  "id": Id,
  "startsAt": "2007-12-03T10:15:30Z",
  "state": "AWAITS_APPROVAL",
  "user": User
}

DutyTimeConnection

Description

The connection type for DutyTime.

Fields
Field Name Description
edges - [DutyTimeEdge] A list of edges.
nodes - [DutyTime] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
Example
{
  "edges": [DutyTimeEdge],
  "nodes": [DutyTime],
  "pageInfo": PageInfo
}

DutyTimeEdge

Description

An edge in a connection.

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

DutyTimeStateEnum

Values
Enum Value Description

AWAITS_APPROVAL

DRAFT

FINALIZED

Example
"AWAITS_APPROVAL"

EngineTypeEnum

Description

Engine type.

Values
Enum Value Description

MULTI_ENGINE

SINGLE_ENGINE

Example
"MULTI_ENGINE"

Exam

Description

An exam registration.

Fields
Field Name Description
attachments - [Attachment]
audit - AuditInfo
booking - ExamBooking
class - Class
endsAt - DateTime
examiner - User Will only be null if the requesting user is not allowed to read.
expensesInvoiceNumber - String Only present if an expense invoice is filled.
id - Id!
participations - [ExamParticipation]!
startsAt - DateTime!
subjectCategory - SubjectCategory Will only be null if the requesting user is not allowed to read it.
Example
{
  "attachments": [Attachment],
  "audit": AuditInfo,
  "booking": ExamBooking,
  "class": Class,
  "endsAt": "2007-12-03T10:15:30Z",
  "examiner": User,
  "expensesInvoiceNumber": "abc123",
  "id": Id,
  "participations": [ExamParticipation],
  "startsAt": "2007-12-03T10:15:30Z",
  "subjectCategory": SubjectCategory
}

ExamBooking

Description

A booking for an exam.

Fields
Field Name Description
audit - AuditInfo
class - Class
classroom - Classroom The location (i.e. classroom) in which the booking will take place. Will only be null if the requesting user is not allowed to read it.
comment - String
emailNotifications - Boolean! Whether or not email notifications will be sent to participants when changes are made to the booking.
endsAt - DateTime!
id - String!
instructor - User The instructor/examiner slated to oversee the booking. Will only be null if the requesting user is not allowed to read it.
startsAt - DateTime!
status - BookingStatusEnum! The current lifecycle status of the booking.
students - [User]! Students slated to participate in the activity.
theoryCourse - TheoryCourse Will only be null if the requesting user is not allowed to read it.
Example
{
  "audit": AuditInfo,
  "class": Class,
  "classroom": Classroom,
  "comment": "abc123",
  "emailNotifications": false,
  "endsAt": "2007-12-03T10:15:30Z",
  "id": "abc123",
  "instructor": User,
  "startsAt": "2007-12-03T10:15:30Z",
  "status": "CANCELLED",
  "students": [User],
  "theoryCourse": TheoryCourse
}

ExamConnection

Description

The connection type for Exam.

Fields
Field Name Description
edges - [ExamEdge] A list of edges.
nodes - [Exam] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
Example
{
  "edges": [ExamEdge],
  "nodes": [Exam],
  "pageInfo": PageInfo
}

ExamEdge

Description

An edge in a connection.

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

ExamParticipation

Description

Represents a students participation in an exam.

Fields
Field Name Description
attendanceStatus - AttendanceStatusEnum!
audit - AuditInfo
endsAt - DateTime
grade - String The grade given to the participant. Not applicable to class theories.
incomeInvoiceNumber - String Only present if an income invoice is filled.
referenceNumber - String
sitting - Sitting
startsAt - DateTime
studentComment - String Comment given by the student. Not applicable to exams.
user - User
Example
{
  "attendanceStatus": "ATTENDED",
  "audit": AuditInfo,
  "endsAt": "2007-12-03T10:15:30Z",
  "grade": "abc123",
  "incomeInvoiceNumber": "abc123",
  "referenceNumber": "abc123",
  "sitting": Sitting,
  "startsAt": "2007-12-03T10:15:30Z",
  "studentComment": "abc123",
  "user": User
}

ExtraTheory

Description

An extra theory registration.

Fields
Field Name Description
attachments - [Attachment]!
audit - AuditInfo
booking - ExtraTheoryBooking
description - String
endsAt - DateTime!
expensesInvoiceNumber - String Only present if an expense invoice is filled.
id - Id!
incomeInvoiceNumber - String Only present if an income invoice is filled.
instructor - User Will only be null if the requesting user is not allowed to read.
startsAt - DateTime!
user - User Will only be null if the requesting user is not allowed to read it.
Example
{
  "attachments": [Attachment],
  "audit": AuditInfo,
  "booking": ExtraTheoryBooking,
  "description": "xyz789",
  "endsAt": "2007-12-03T10:15:30Z",
  "expensesInvoiceNumber": "abc123",
  "id": Id,
  "incomeInvoiceNumber": "xyz789",
  "instructor": User,
  "startsAt": "2007-12-03T10:15:30Z",
  "user": User
}

ExtraTheoryBooking

Description

A booking for an extra theory lesson.

Fields
Field Name Description
audit - AuditInfo
classroom - Classroom The location (i.e. classroom) in which the booking will take place. Will only be null if the requesting user is not allowed to read it.
comment - String
emailNotifications - Boolean! Whether or not email notifications will be sent to participants when changes are made to the booking.
endsAt - DateTime!
id - String!
instructor - User Will only be null if the requesting user is not allowed to read it.
startsAt - DateTime!
status - BookingStatusEnum! The current lifecycle status of the booking.
student - User Will only be null if the requesting user is not allowed to read it.
Example
{
  "audit": AuditInfo,
  "classroom": Classroom,
  "comment": "abc123",
  "emailNotifications": true,
  "endsAt": "2007-12-03T10:15:30Z",
  "id": "xyz789",
  "instructor": User,
  "startsAt": "2007-12-03T10:15:30Z",
  "status": "CANCELLED",
  "student": User
}

ExtraTheoryConnection

Description

The connection type for ExtraTheory.

Fields
Field Name Description
edges - [ExtraTheoryEdge] A list of edges.
nodes - [ExtraTheory] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
Example
{
  "edges": [ExtraTheoryEdge],
  "nodes": [ExtraTheory],
  "pageInfo": PageInfo
}

ExtraTheoryEdge

Description

An edge in a connection.

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

Flight

Description

A flight registration.

Fields
Field Name Description
accountingTransactions - [AccountingTransaction] Student & Renter Account Module (SRAM) transactions incurred by the flight.
activityRegistration - FlightRegistration The specific activity registration associated with the flight (e.g. training, rental, operation, etc.)
aircraft - Aircraft The aircraft performing the flight.
arrivalAirport - Airport The airport registered at the arrival of the flight. Will always be present for a non-simulator flight.
atSeconds - Int!
audit - AuditInfo
calculatedFuelUsage - String Uses the planes fuel coefficient and unit to determine the fuel usage of the flight. Unit of measurement matches that of the aircraft.
crossCountrySeconds - Int!
daySeconds - Int!
departureAirport - Airport The airport registered at the departure of the flight. Will always be present for a non-simulator flight.
departureFuel - String The total fuel before flight. Unit of measurement matches that of the aircraft.
departureFuelAdded - String The amount of fuel added before the flight. Unit of measurement matches that of the aircraft.
expensesInvoiceNumber - String Only present if an expense invoice is filled.
flightType - FlightTypeEnum
id - Id!
ifSeconds - Int!
ifrSeconds - Int!
incomeInvoiceNumber - String Only present if an income invoice is filled.
landing - DateTime The point in time at which the aircraft landed.
landings - [Landing] The landing(s) performed during the flight.
localSeconds - Int!
nightSeconds - Int!
offBlock - DateTime! The point in time of the beginning of the off-block portion of the flight.
onBlock - DateTime! The point in time of the beginning of the on-block portion of the flight.
pilotFlyingSeconds - Int!
pilotMonitoringSeconds - Int!
takeoff - DateTime The point in time at which the aircraft took off.
timerFinishSeconds - Int The timer value at the end of the flight. Will never be null if the aircraft uses timer.
timerStartSeconds - Int The timer value at the beginning of the flight. Will never be null if the aircraft uses timer.
vfrSeconds - Int!
Example
{
  "accountingTransactions": [AccountingTransaction],
  "activityRegistration": FlightRegistration,
  "aircraft": Aircraft,
  "arrivalAirport": Airport,
  "atSeconds": 987,
  "audit": AuditInfo,
  "calculatedFuelUsage": "abc123",
  "crossCountrySeconds": 123,
  "daySeconds": 987,
  "departureAirport": Airport,
  "departureFuel": "xyz789",
  "departureFuelAdded": "abc123",
  "expensesInvoiceNumber": "abc123",
  "flightType": "DUAL",
  "id": Id,
  "ifSeconds": 987,
  "ifrSeconds": 123,
  "incomeInvoiceNumber": "xyz789",
  "landing": "2007-12-03T10:15:30Z",
  "landings": [Landing],
  "localSeconds": 987,
  "nightSeconds": 123,
  "offBlock": "2007-12-03T10:15:30Z",
  "onBlock": "2007-12-03T10:15:30Z",
  "pilotFlyingSeconds": 987,
  "pilotMonitoringSeconds": 123,
  "takeoff": "2007-12-03T10:15:30Z",
  "timerFinishSeconds": 987,
  "timerStartSeconds": 987,
  "vfrSeconds": 987
}

FlightConnection

Description

The connection type for Flight.

Fields
Field Name Description
edges - [FlightEdge] A list of edges.
nodes - [Flight] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
Example
{
  "edges": [FlightEdge],
  "nodes": [Flight],
  "pageInfo": PageInfo
}

FlightEdge

Description

An edge in a connection.

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

FlightRegistration

Description

Represents something that has flights.

Fields
Field Name Description
asymmetricSeconds - Int!
crossCountrySeconds - Int!
flights - [Flight]!
id - Id!
ifrDualSeconds - Int!
ifrSimSeconds - Int!
ifrSpicSeconds - Int!
instrumentSeconds - Int!
multiSeconds - Int!
nightSeconds - Int!
pilotFlyingSeconds - Int!
pilotMonitoringSeconds - Int!
singleSeconds - Int!
totalSeconds - Int!
vfrDualSeconds - Int!
vfrSimSeconds - Int!
vfrSoloSeconds - Int!
vfrSpicSeconds - Int!
Possible Types
FlightRegistration Types

Operation

Rental

Training

Example
{
  "asymmetricSeconds": 123,
  "crossCountrySeconds": 987,
  "flights": [Flight],
  "id": Id,
  "ifrDualSeconds": 987,
  "ifrSimSeconds": 987,
  "ifrSpicSeconds": 987,
  "instrumentSeconds": 123,
  "multiSeconds": 123,
  "nightSeconds": 987,
  "pilotFlyingSeconds": 987,
  "pilotMonitoringSeconds": 987,
  "singleSeconds": 123,
  "totalSeconds": 123,
  "vfrDualSeconds": 987,
  "vfrSimSeconds": 123,
  "vfrSoloSeconds": 987,
  "vfrSpicSeconds": 123
}

FlightTimerEnum

Description

Flight time measurement method.

Values
Enum Value Description

AIRSWITCH

DATCON

EDU

FLIGHT_TIME

HOBBS

TACH

VDO

Example
"AIRSWITCH"

FlightTypeEnum

Description

Type of flight.

Values
Enum Value Description

DUAL

SIM

SOLO

SPIC

Example
"DUAL"

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
987.65

FuelCoefficientBasisEnum

Description

Flight time measurement basis used in fuel coefficient calculations.

Values
Enum Value Description

AIRBORNE

BLOCK

TIMER

Example
"AIRBORNE"

FuelMeasurementUnitEnum

Description

Unit of measurement for fuel.

Values
Enum Value Description

LITERS

USG

Example
"LITERS"

GroundBooking

Description

Fields common to all bookings tied to ground resources (i.e. classrooms).

Fields
Field Name Description
classroom - Classroom The location (i.e. classroom) in which the booking will take place. Will only be null if the requesting user is not allowed to read it.
Example
{"classroom": Classroom}

Id

Description

An unique identifier

Example
Id

Int

Description

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

Example
987

Landing

Description

A landing done as part of a Flight.

Fields
Field Name Description
airport - Airport The airport at which the landing took place. Will only be null if the requesting user is not allowed to read it.
audit - AuditInfo
id - Id!
isArrival - Boolean! True if the landing is the last landing (arrival).
landingType - LandingTypeEnum!
landingTypeCount - Int!
nightLanding - Boolean!
Example
{
  "airport": Airport,
  "audit": AuditInfo,
  "id": Id,
  "isArrival": true,
  "landingType": "APPROACH",
  "landingTypeCount": 123,
  "nightLanding": true
}

LandingTypeEnum

Values
Enum Value Description

APPROACH

GO_AROUND

LANDING

TOUCH_AND_GO

Example
"APPROACH"

Lecture

Description

A lecture/lesson on a program. Not to be confused with a Training, which is a completed lecture/lesson registration.

Fields
Field Name Description
audit - AuditInfo
briefingMinutes - Int! The duration of the briefing, in minutes.
crossCountryMinutes - Int!
debriefingMinutes - Int! The duration of the de-briefing, in minutes.
id - Id!
ifrDualMinutes - Int!
ifrSimMinutes - Int!
ifrSpicMinutes - Int!
multiEngineMinutes - Int!
name - String!
nightMinutes - Int!
pilotFlyingMinutes - Int!
pilotMonitoringMinutes - Int!
programPhase - ProgramPhase Will only be null if the requesting user is not allowed to read it.
vfrDualMinutes - Int!
vfrSimMinutes - Int!
vfrSoloMinutes - Int!
vfrSpicMinutes - Int!
Example
{
  "audit": AuditInfo,
  "briefingMinutes": 987,
  "crossCountryMinutes": 987,
  "debriefingMinutes": 123,
  "id": Id,
  "ifrDualMinutes": 987,
  "ifrSimMinutes": 123,
  "ifrSpicMinutes": 987,
  "multiEngineMinutes": 987,
  "name": "xyz789",
  "nightMinutes": 123,
  "pilotFlyingMinutes": 987,
  "pilotMonitoringMinutes": 987,
  "programPhase": ProgramPhase,
  "vfrDualMinutes": 123,
  "vfrSimMinutes": 987,
  "vfrSoloMinutes": 123,
  "vfrSpicMinutes": 123
}

MaintenanceBooking

Description

A booking for an aircraft maintenance.

Fields
Field Name Description
aircraft - Aircraft Will only be null if the requesting user is not allowed to read it.
arrivalAirport - Airport
audit - AuditInfo
comment - String
departureAirport - Airport
emailNotifications - Boolean! Whether or not email notifications will be sent to participants when changes are made to the booking.
endsAt - DateTime!
flightEndsAt - DateTime!
flightStartsAt - DateTime!
id - String!
startsAt - DateTime!
status - BookingStatusEnum! The current lifecycle status of the booking.
Example
{
  "aircraft": Aircraft,
  "arrivalAirport": Airport,
  "audit": AuditInfo,
  "comment": "abc123",
  "departureAirport": Airport,
  "emailNotifications": true,
  "endsAt": "2007-12-03T10:15:30Z",
  "flightEndsAt": "2007-12-03T10:15:30Z",
  "flightStartsAt": "2007-12-03T10:15:30Z",
  "id": "xyz789",
  "startsAt": "2007-12-03T10:15:30Z",
  "status": "CANCELLED"
}

MeetingBooking

Description

A booking for a meeting.

Fields
Field Name Description
audit - AuditInfo
classroom - Classroom The location (i.e. classroom) in which the booking will take place. Will only be null if the requesting user is not allowed to read it.
comment - String
emailNotifications - Boolean! Whether or not email notifications will be sent to participants when changes are made to the booking.
endsAt - DateTime!
id - String!
participants - [User]!
startsAt - DateTime!
status - BookingStatusEnum! The current lifecycle status of the booking.
Example
{
  "audit": AuditInfo,
  "classroom": Classroom,
  "comment": "xyz789",
  "emailNotifications": false,
  "endsAt": "2007-12-03T10:15:30Z",
  "id": "xyz789",
  "participants": [User],
  "startsAt": "2007-12-03T10:15:30Z",
  "status": "CANCELLED"
}

MultiStudentBooking

Description

A booking for a multi-student training flight.

Fields
Field Name Description
aircraft - Aircraft Will only be null if the requesting user is not allowed to read it.
arrivalAirport - Airport
audit - AuditInfo
cancellations - BookingCancellation The cancellation registration associated with the booking.
comment - String
departureAirport - Airport
emailNotifications - Boolean! Whether or not email notifications will be sent to participants when changes are made to the booking.
endsAt - DateTime!
flightEndsAt - DateTime!
flightStartsAt - DateTime!
id - String!
instructor - User Will only be null if the requesting user is not allowed to read it.
plannedLessons - [Training] The planned training lessons associated with the booking.
registrations - [Training] The training registrations associated with the booking.
startsAt - DateTime!
status - BookingStatusEnum! The current lifecycle status of the booking.
students - [User]!
Example
{
  "aircraft": Aircraft,
  "arrivalAirport": Airport,
  "audit": AuditInfo,
  "cancellations": BookingCancellation,
  "comment": "xyz789",
  "departureAirport": Airport,
  "emailNotifications": true,
  "endsAt": "2007-12-03T10:15:30Z",
  "flightEndsAt": "2007-12-03T10:15:30Z",
  "flightStartsAt": "2007-12-03T10:15:30Z",
  "id": "abc123",
  "instructor": User,
  "plannedLessons": [Training],
  "registrations": [Training],
  "startsAt": "2007-12-03T10:15:30Z",
  "status": "CANCELLED",
  "students": [User]
}

Operation

Description

An operation registration.

Fields
Field Name Description
asymmetricSeconds - Int!
audit - AuditInfo
booking - OperationBooking
comment - String
crew - [User]! Entries will only be null if the requesting user is not allowed to read them.
crossCountrySeconds - Int!
customer - Customer
expensesInvoiceNumber - String
flights - [Flight]!
id - Id!
ifrDualSeconds - Int!
ifrSimSeconds - Int!
ifrSpicSeconds - Int!
incomeInvoiceNumber - String
instrumentSeconds - Int!
multiSeconds - Int!
nightSeconds - Int!
operationType - OperationType The type of operation performed.
pic - User Will only be null if the requesting user is not allowed to read it.
pilotFlyingSeconds - Int!
pilotMonitoringSeconds - Int!
singleSeconds - Int!
totalSeconds - Int!
vfrDualSeconds - Int!
vfrSimSeconds - Int!
vfrSoloSeconds - Int!
vfrSpicSeconds - Int!
Example
{
  "asymmetricSeconds": 987,
  "audit": AuditInfo,
  "booking": OperationBooking,
  "comment": "xyz789",
  "crew": [User],
  "crossCountrySeconds": 987,
  "customer": Customer,
  "expensesInvoiceNumber": "abc123",
  "flights": [Flight],
  "id": Id,
  "ifrDualSeconds": 987,
  "ifrSimSeconds": 987,
  "ifrSpicSeconds": 123,
  "incomeInvoiceNumber": "xyz789",
  "instrumentSeconds": 123,
  "multiSeconds": 123,
  "nightSeconds": 987,
  "operationType": OperationType,
  "pic": User,
  "pilotFlyingSeconds": 987,
  "pilotMonitoringSeconds": 123,
  "singleSeconds": 987,
  "totalSeconds": 987,
  "vfrDualSeconds": 987,
  "vfrSimSeconds": 987,
  "vfrSoloSeconds": 987,
  "vfrSpicSeconds": 123
}

OperationBooking

Description

A booking for an operation flight.

Fields
Field Name Description
aircraft - Aircraft Will only be null if the requesting user is not allowed to read it.
arrivalAirport - Airport
audit - AuditInfo
cancellation - BookingCancellation The cancellation registration associated with the booking.
comment - String
crew - [User]! Attending crew.
customer - Customer
departureAirport - Airport
emailNotifications - Boolean! Whether or not email notifications will be sent to participants when changes are made to the booking.
endsAt - DateTime!
flightEndsAt - DateTime!
flightStartsAt - DateTime!
id - String!
operationType - OperationType The type of operation that has been slated to be flown. Will only be null if the requesting user is not allowed to read it.
pic - User Pilot in Command. Will only be null if the requesting user is not allowed to read it.
registration - Operation The operation registration associated with the booking.
startsAt - DateTime!
status - BookingStatusEnum! The current lifecycle status of the booking.
Example
{
  "aircraft": Aircraft,
  "arrivalAirport": Airport,
  "audit": AuditInfo,
  "cancellation": BookingCancellation,
  "comment": "abc123",
  "crew": [User],
  "customer": Customer,
  "departureAirport": Airport,
  "emailNotifications": true,
  "endsAt": "2007-12-03T10:15:30Z",
  "flightEndsAt": "2007-12-03T10:15:30Z",
  "flightStartsAt": "2007-12-03T10:15:30Z",
  "id": "abc123",
  "operationType": OperationType,
  "pic": User,
  "registration": Operation,
  "startsAt": "2007-12-03T10:15:30Z",
  "status": "CANCELLED"
}

OperationConnection

Description

The connection type for Operation.

Fields
Field Name Description
edges - [OperationEdge] A list of edges.
nodes - [Operation] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
Example
{
  "edges": [OperationEdge],
  "nodes": [Operation],
  "pageInfo": PageInfo
}

OperationEdge

Description

An edge in a connection.

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

OperationType

Description

An operation type. To indicate the type of operation being flown as part of an operation registration.

Fields
Field Name Description
audit - AuditInfo
externalReference - String Used to identify/reference this specific operation type outside of FlightLogger.
id - String!
name - String!
note - String!
Example
{
  "audit": AuditInfo,
  "externalReference": "xyz789",
  "id": "xyz789",
  "name": "xyz789",
  "note": "abc123"
}

PageInfo

Description

Information about pagination in a connection.

Fields
Field Name Description
endCursor - String When paginating forwards, the cursor to continue.
hasNextPage - Boolean! When paginating forwards, are there more items?
hasPreviousPage - Boolean! When paginating backwards, are there more items?
startCursor - String When paginating backwards, the cursor to continue.
Example
{
  "endCursor": "abc123",
  "hasNextPage": false,
  "hasPreviousPage": true,
  "startCursor": "xyz789"
}

PmfTypeEnum

Description

PMF (Pilot Monitoring/Flying) state.

Values
Enum Value Description

PILOT_FLYING

PILOT_MONITORING

PILOT_NOT_SPECIFIED

Example
"PILOT_FLYING"

Program

Description

A program. Not to be confused with a UserProgram, which represents the link between a program and user.

Fields
Field Name Description
audit - AuditInfo
externalReference - String Used to identify/reference this specific operation type outside of FlightLogger.
id - Id!
name - String!
Example
{
  "audit": AuditInfo,
  "externalReference": "abc123",
  "id": Id,
  "name": "abc123"
}

ProgramPhase

Description

A program phase.

Fields
Field Name Description
audit - AuditInfo
id - Id!
name - String!
Example
{
  "audit": AuditInfo,
  "id": Id,
  "name": "xyz789"
}

ProgramRevision

Description

A program revision.

Fields
Field Name Description
audit - AuditInfo
externalReference - String Used to identify/reference this specific operation type outside of FlightLogger.
id - Id!
name - String!
Example
{
  "audit": AuditInfo,
  "externalReference": "abc123",
  "id": Id,
  "name": "xyz789"
}

ProgressTest

Description

A progress test registration.

Fields
Field Name Description
attachments - [Attachment]
audit - AuditInfo
booking - ProgressTestBooking
class - Class
comment - String
endsAt - DateTime
expensesInvoiceNumber - String Only present if an expense invoice is filled.
id - String!
instructor - User Will only be null if the requesting user is not allowed to read.
participations - [TheoryParticipation]!
startsAt - DateTime!
subject - String
subjectCategory - SubjectCategory Will only be null if the requesting user is not allowed to read it.
Example
{
  "attachments": [Attachment],
  "audit": AuditInfo,
  "booking": ProgressTestBooking,
  "class": Class,
  "comment": "abc123",
  "endsAt": "2007-12-03T10:15:30Z",
  "expensesInvoiceNumber": "xyz789",
  "id": "xyz789",
  "instructor": User,
  "participations": [TheoryParticipation],
  "startsAt": "2007-12-03T10:15:30Z",
  "subject": "abc123",
  "subjectCategory": SubjectCategory
}

ProgressTestBooking

Description

A booking for a progress test.

Fields
Field Name Description
audit - AuditInfo
class - Class
classroom - Classroom The location (i.e. classroom) in which the booking will take place. Will only be null if the requesting user is not allowed to read it.
comment - String
emailNotifications - Boolean! Whether or not email notifications will be sent to participants when changes are made to the booking.
endsAt - DateTime!
id - String!
instructor - User The instructor/examiner slated to oversee the booking. Will only be null if the requesting user is not allowed to read it.
startsAt - DateTime!
status - BookingStatusEnum! The current lifecycle status of the booking.
students - [User]! Students slated to participate in the activity.
subject - String
theoryCourse - TheoryCourse Will only be null if the requesting user is not allowed to read it.
Example
{
  "audit": AuditInfo,
  "class": Class,
  "classroom": Classroom,
  "comment": "abc123",
  "emailNotifications": true,
  "endsAt": "2007-12-03T10:15:30Z",
  "id": "xyz789",
  "instructor": User,
  "startsAt": "2007-12-03T10:15:30Z",
  "status": "CANCELLED",
  "students": [User],
  "subject": "xyz789",
  "theoryCourse": TheoryCourse
}

ProgressTestConnection

Description

The connection type for ProgressTest.

Fields
Field Name Description
edges - [ProgressTestEdge] A list of edges.
nodes - [ProgressTest] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
Example
{
  "edges": [ProgressTestEdge],
  "nodes": [ProgressTest],
  "pageInfo": PageInfo
}

ProgressTestEdge

Description

An edge in a connection.

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

Rental

Description

A rental flight registration.

Fields
Field Name Description
asymmetricSeconds - Int!
audit - AuditInfo
booking - RentalBooking
comment - String
crossCountrySeconds - Int!
flights - [Flight]!
id - Id!
ifrDualSeconds - Int!
ifrSimSeconds - Int!
ifrSpicSeconds - Int!
instrumentSeconds - Int!
multiSeconds - Int!
nightSeconds - Int!
pilotFlyingSeconds - Int!
pilotMonitoringSeconds - Int!
renter - User Will only be null if the requesting user is not allowed to read it.
singleSeconds - Int!
totalSeconds - Int!
vfrDualSeconds - Int!
vfrSimSeconds - Int!
vfrSoloSeconds - Int!
vfrSpicSeconds - Int!
Example
{
  "asymmetricSeconds": 123,
  "audit": AuditInfo,
  "booking": RentalBooking,
  "comment": "abc123",
  "crossCountrySeconds": 123,
  "flights": [Flight],
  "id": Id,
  "ifrDualSeconds": 987,
  "ifrSimSeconds": 987,
  "ifrSpicSeconds": 123,
  "instrumentSeconds": 123,
  "multiSeconds": 123,
  "nightSeconds": 987,
  "pilotFlyingSeconds": 123,
  "pilotMonitoringSeconds": 987,
  "renter": User,
  "singleSeconds": 987,
  "totalSeconds": 123,
  "vfrDualSeconds": 987,
  "vfrSimSeconds": 987,
  "vfrSoloSeconds": 123,
  "vfrSpicSeconds": 987
}

RentalBooking

Description

A booking for a rental flight.

Fields
Field Name Description
aircraft - Aircraft Will only be null if the requesting user is not allowed to read it.
approved - Boolean! True if the rental request has been approved by a rental administrator. False otherwise.
arrivalAirport - Airport
audit - AuditInfo
cancellation - BookingCancellation The cancellation registration associated with the booking.
comment - String
departureAirport - Airport
emailNotifications - Boolean! Whether or not email notifications will be sent to participants when changes are made to the booking.
endsAt - DateTime!
flightEndsAt - DateTime!
flightStartsAt - DateTime!
id - String!
registration - Rental The rental registration associated with the booking.
renter - User Will only be null if the requesting user is not allowed to read it.
startsAt - DateTime!
status - BookingStatusEnum! The current lifecycle status of the booking.
Example
{
  "aircraft": Aircraft,
  "approved": true,
  "arrivalAirport": Airport,
  "audit": AuditInfo,
  "cancellation": BookingCancellation,
  "comment": "xyz789",
  "departureAirport": Airport,
  "emailNotifications": true,
  "endsAt": "2007-12-03T10:15:30Z",
  "flightEndsAt": "2007-12-03T10:15:30Z",
  "flightStartsAt": "2007-12-03T10:15:30Z",
  "id": "abc123",
  "registration": Rental,
  "renter": User,
  "startsAt": "2007-12-03T10:15:30Z",
  "status": "CANCELLED"
}

RentalConnection

Description

The connection type for Rental.

Fields
Field Name Description
edges - [RentalEdge] A list of edges.
nodes - [Rental] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
Example
{
  "edges": [RentalEdge],
  "nodes": [Rental],
  "pageInfo": PageInfo
}

RentalEdge

Description

An edge in a connection.

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

SingleStudentBooking

Description

A booking for a single-student training.

Fields
Field Name Description
aircraft - Aircraft Will only be null if the requesting user is not allowed to read it.
arrivalAirport - Airport
audit - AuditInfo
cancellation - BookingCancellation The cancellation registration associated with the booking.
comment - String
departureAirport - Airport
emailNotifications - Boolean! Whether or not email notifications will be sent to participants when changes are made to the booking.
endsAt - DateTime!
flightEndsAt - DateTime!
flightStartsAt - DateTime!
id - String!
instructor - User Will only be null if the requesting user is not allowed to read it.
plannedLesson - Training The planned training lesson associated with the booking.
registration - Training The training registration associated with the booking.
startsAt - DateTime!
status - BookingStatusEnum! The current lifecycle status of the booking.
student - User Will only be null if the requesting user is not allowed to read it.
Example
{
  "aircraft": Aircraft,
  "arrivalAirport": Airport,
  "audit": AuditInfo,
  "cancellation": BookingCancellation,
  "comment": "abc123",
  "departureAirport": Airport,
  "emailNotifications": true,
  "endsAt": "2007-12-03T10:15:30Z",
  "flightEndsAt": "2007-12-03T10:15:30Z",
  "flightStartsAt": "2007-12-03T10:15:30Z",
  "id": "abc123",
  "instructor": User,
  "plannedLesson": Training,
  "registration": Training,
  "startsAt": "2007-12-03T10:15:30Z",
  "status": "CANCELLED",
  "student": User
}

Sitting

Description

An exam sitting.

Fields
Field Name Description
audit - AuditInfo
endsAt - Date!
id - Id!
sittingNumber - Int!
startsAt - Date!
Example
{
  "audit": AuditInfo,
  "endsAt": "2007-12-03",
  "id": Id,
  "sittingNumber": 987,
  "startsAt": "2007-12-03"
}

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"

SubjectCategory

Description

A subject category as part of a theory course.

Fields
Field Name Description
audit - AuditInfo
id - String!
name - String
theoryCourse - TheoryCourse Will only be null if the requesting user is not allowed to read it.
Example
{
  "audit": AuditInfo,
  "id": "xyz789",
  "name": "abc123",
  "theoryCourse": TheoryCourse
}

Theory

Description

A theory registration with one or more students.

Fields
Field Name Description
attachments - [Attachment]
booking - GroundBooking
class - Class
endsAt - DateTime
startsAt - DateTime!
subjectCategory - SubjectCategory Will only be null if the requesting user is not allowed to read it.
Example
{
  "attachments": [Attachment],
  "booking": GroundBooking,
  "class": Class,
  "endsAt": "2007-12-03T10:15:30Z",
  "startsAt": "2007-12-03T10:15:30Z",
  "subjectCategory": SubjectCategory
}

TheoryBooking

Description

Fields common to all theoretical booking.

Fields
Field Name Description
class - Class
instructor - User The instructor/examiner slated to oversee the booking. Will only be null if the requesting user is not allowed to read it.
students - [User]! Students slated to participate in the activity.
theoryCourse - TheoryCourse Will only be null if the requesting user is not allowed to read it.
Example
{
  "class": Class,
  "instructor": User,
  "students": [User],
  "theoryCourse": TheoryCourse
}

TheoryCourse

Description

A theory course.

Fields
Field Name Description
audit - AuditInfo
disabled - Boolean!
id - String!
name - String!
Example
{
  "audit": AuditInfo,
  "disabled": true,
  "id": "xyz789",
  "name": "abc123"
}

TheoryParticipation

Description

Represents a students participation in a type of theory.

Fields
Field Name Description
attendanceStatus - AttendanceStatusEnum!
audit - AuditInfo
endsAt - DateTime
grade - String The grade given to the participant. Not applicable to class theories.
incomeInvoiceNumber - String Only present if an income invoice is filled.
startsAt - DateTime
studentComment - String Comment given by the student. Not applicable to exams.
user - User
Example
{
  "attendanceStatus": "ATTENDED",
  "audit": AuditInfo,
  "endsAt": "2007-12-03T10:15:30Z",
  "grade": "abc123",
  "incomeInvoiceNumber": "xyz789",
  "startsAt": "2007-12-03T10:15:30Z",
  "studentComment": "abc123",
  "user": User
}

TheoryRelease

Description

A theory release registration.

Fields
Field Name Description
attachments - [Attachment]
audit - AuditInfo
booking - TheoryReleaseBooking
class - Class
comment - String
endsAt - DateTime
expensesInvoiceNumber - String Only present if an expense invoice is filled.
id - Id!
instructor - User Will only be null if the requesting user is not allowed to read.
participations - [TheoryParticipation]!
startsAt - DateTime!
subject - String
subjectCategory - SubjectCategory Will only be null if the requesting user is not allowed to read it.
Example
{
  "attachments": [Attachment],
  "audit": AuditInfo,
  "booking": TheoryReleaseBooking,
  "class": Class,
  "comment": "xyz789",
  "endsAt": "2007-12-03T10:15:30Z",
  "expensesInvoiceNumber": "abc123",
  "id": Id,
  "instructor": User,
  "participations": [TheoryParticipation],
  "startsAt": "2007-12-03T10:15:30Z",
  "subject": "abc123",
  "subjectCategory": SubjectCategory
}

TheoryReleaseBooking

Description

A booking for a theory release.

Fields
Field Name Description
audit - AuditInfo
class - Class
classroom - Classroom The location (i.e. classroom) in which the booking will take place. Will only be null if the requesting user is not allowed to read it.
comment - String
emailNotifications - Boolean! Whether or not email notifications will be sent to participants when changes are made to the booking.
endsAt - DateTime!
id - String!
instructor - User The instructor/examiner slated to oversee the booking. Will only be null if the requesting user is not allowed to read it.
startsAt - DateTime!
status - BookingStatusEnum! The current lifecycle status of the booking.
students - [User]! Students slated to participate in the activity.
subject - String
theoryCourse - TheoryCourse Will only be null if the requesting user is not allowed to read it.
Example
{
  "audit": AuditInfo,
  "class": Class,
  "classroom": Classroom,
  "comment": "xyz789",
  "emailNotifications": false,
  "endsAt": "2007-12-03T10:15:30Z",
  "id": "abc123",
  "instructor": User,
  "startsAt": "2007-12-03T10:15:30Z",
  "status": "CANCELLED",
  "students": [User],
  "subject": "abc123",
  "theoryCourse": TheoryCourse
}

TheoryReleaseConnection

Description

The connection type for TheoryRelease.

Fields
Field Name Description
edges - [TheoryReleaseEdge] A list of edges.
nodes - [TheoryRelease] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
Example
{
  "edges": [TheoryReleaseEdge],
  "nodes": [TheoryRelease],
  "pageInfo": PageInfo
}

TheoryReleaseEdge

Description

An edge in a connection.

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

Training

Description

A training registration. Represents a completed Lecture. Not to be confused with a Lecture itself.

Fields
Field Name Description
approvedByStudent - Boolean!
asymmetricSeconds - Int!
audit - AuditInfo
booking - TrainingBookingUnion
briefingSeconds - Int! The duration of the briefing, in seconds.
comment - String
crossCountrySeconds - Int!
debriefingSeconds - Int! The duration of the de-briefing, in seconds.
flights - [Flight]!
id - Id!
ifrDualSeconds - Int!
ifrSimSeconds - Int!
ifrSpicSeconds - Int!
instructor - User The instructor performing the training. Note that if status is NOT_FLOWN or CREDITED, instructor may be null.
instrumentSeconds - Int!
lecture - Lecture
multiSeconds - Int!
name - String!
nightSeconds - Int!
pilotFlyingSeconds - Int!
pilotMonitoringSeconds - Int!
singleSeconds - Int!
status - TrainingStatusEnum!
student - User
totalSeconds - Int!
userProgram - UserProgram
vfrDualSeconds - Int!
vfrSimSeconds - Int!
vfrSoloSeconds - Int!
vfrSpicSeconds - Int!
Example
{
  "approvedByStudent": false,
  "asymmetricSeconds": 123,
  "audit": AuditInfo,
  "booking": MultiStudentBooking,
  "briefingSeconds": 123,
  "comment": "abc123",
  "crossCountrySeconds": 987,
  "debriefingSeconds": 123,
  "flights": [Flight],
  "id": Id,
  "ifrDualSeconds": 123,
  "ifrSimSeconds": 987,
  "ifrSpicSeconds": 987,
  "instructor": User,
  "instrumentSeconds": 123,
  "lecture": Lecture,
  "multiSeconds": 987,
  "name": "xyz789",
  "nightSeconds": 123,
  "pilotFlyingSeconds": 123,
  "pilotMonitoringSeconds": 123,
  "singleSeconds": 123,
  "status": "CREDITED",
  "student": User,
  "totalSeconds": 987,
  "userProgram": UserProgram,
  "vfrDualSeconds": 987,
  "vfrSimSeconds": 987,
  "vfrSoloSeconds": 987,
  "vfrSpicSeconds": 987
}

TrainingBookingUnion

Description

All training booking subtypes.

Example
MultiStudentBooking

TrainingConnection

Description

The connection type for Training.

Fields
Field Name Description
edges - [TrainingEdge] A list of edges.
nodes - [Training] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
Example
{
  "edges": [TrainingEdge],
  "nodes": [Training],
  "pageInfo": PageInfo
}

TrainingEdge

Description

An edge in a connection.

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

TrainingStatusEnum

Description

The current state of a training registrations' lifecycle.

Values
Enum Value Description

CREDITED

FAILED

NOT_FLOWN

PASSED

Example
"CREDITED"

TypeQuestionnaire

Description

A type questionnaire registration.

Fields
Field Name Description
attachments - [Attachment]
audit - AuditInfo
booking - TypeQuestionnaireBooking
class - Class
comment - String
endsAt - DateTime
expensesInvoiceNumber - String Only present if an expense invoice is filled.
id - Id!
instructor - User Will only be null if the requesting user is not allowed to read.
participations - [TheoryParticipation]!
startsAt - DateTime!
subject - String
subjectCategory - SubjectCategory Will only be null if the requesting user is not allowed to read it.
Example
{
  "attachments": [Attachment],
  "audit": AuditInfo,
  "booking": TypeQuestionnaireBooking,
  "class": Class,
  "comment": "xyz789",
  "endsAt": "2007-12-03T10:15:30Z",
  "expensesInvoiceNumber": "abc123",
  "id": Id,
  "instructor": User,
  "participations": [TheoryParticipation],
  "startsAt": "2007-12-03T10:15:30Z",
  "subject": "xyz789",
  "subjectCategory": SubjectCategory
}

TypeQuestionnaireBooking

Description

A booking for a type questionnaire.

Fields
Field Name Description
audit - AuditInfo
class - Class
classroom - Classroom The location (i.e. classroom) in which the booking will take place. Will only be null if the requesting user is not allowed to read it.
comment - String
emailNotifications - Boolean! Whether or not email notifications will be sent to participants when changes are made to the booking.
endsAt - DateTime!
id - String!
instructor - User The instructor/examiner slated to oversee the booking. Will only be null if the requesting user is not allowed to read it.
startsAt - DateTime!
status - BookingStatusEnum! The current lifecycle status of the booking.
students - [User]! Students slated to participate in the activity.
theoryCourse - TheoryCourse Will only be null if the requesting user is not allowed to read it.
Example
{
  "audit": AuditInfo,
  "class": Class,
  "classroom": Classroom,
  "comment": "xyz789",
  "emailNotifications": false,
  "endsAt": "2007-12-03T10:15:30Z",
  "id": "xyz789",
  "instructor": User,
  "startsAt": "2007-12-03T10:15:30Z",
  "status": "CANCELLED",
  "students": [User],
  "theoryCourse": TheoryCourse
}

TypeQuestionnaireConnection

Description

The connection type for TypeQuestionnaire.

Fields
Field Name Description
edges - [TypeQuestionnaireEdge] A list of edges.
nodes - [TypeQuestionnaire] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
Example
{
  "edges": [TypeQuestionnaireEdge],
  "nodes": [TypeQuestionnaire],
  "pageInfo": PageInfo
}

TypeQuestionnaireEdge

Description

An edge in a connection.

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

User

Description

A user.

Fields
Field Name Description
audit - AuditInfo
callSign - String!
contact - UserContact
emergencyContact - UserEmergencyContact
firstName - String
id - String!
lastName - String
notes - UserNotes
references - UserReferences
Example
{
  "audit": AuditInfo,
  "callSign": "xyz789",
  "contact": UserContact,
  "emergencyContact": UserEmergencyContact,
  "firstName": "abc123",
  "id": "abc123",
  "lastName": "xyz789",
  "notes": UserNotes,
  "references": UserReferences
}

UserConnection

Description

The connection type for User.

Fields
Field Name Description
edges - [UserEdge] A list of edges.
nodes - [User] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
Example
{
  "edges": [UserEdge],
  "nodes": [User],
  "pageInfo": PageInfo
}

UserContact

Description

Contact information for the user.

Fields
Field Name Description
address - String
city - String
country - String
dateOfBirth - Date
email - String!
phone - String
zipcode - String
Example
{
  "address": "abc123",
  "city": "xyz789",
  "country": "xyz789",
  "dateOfBirth": "2007-12-03",
  "email": "abc123",
  "phone": "xyz789",
  "zipcode": "xyz789"
}

UserEdge

Description

An edge in a connection.

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

UserEmergencyContact

Description

Contact information for the emergency contact of a user.

Fields
Field Name Description
address - String
city - String
country - String
dateOfBirth - Date
email - String
firstName - String
lastName - String
phone - String
relation - String
zipcode - String
Example
{
  "address": "xyz789",
  "city": "xyz789",
  "country": "abc123",
  "dateOfBirth": "2007-12-03",
  "email": "xyz789",
  "firstName": "xyz789",
  "lastName": "xyz789",
  "phone": "xyz789",
  "relation": "abc123",
  "zipcode": "abc123"
}

UserNotes

Description

Note information for the user.

Fields
Field Name Description
adminNote - String
instructorNote - String
publicNote - String
Example
{
  "adminNote": "xyz789",
  "instructorNote": "xyz789",
  "publicNote": "abc123"
}

UserProgram

Description

Represents the link between a User and a Program.

Fields
Field Name Description
audit - AuditInfo
id - Id!
program - Program
programRevision - ProgramRevision
user - User
Example
{
  "audit": AuditInfo,
  "id": Id,
  "program": Program,
  "programRevision": ProgramRevision,
  "user": User
}

UserReferences

Description

Reference information for the user.

Fields
Field Name Description
caaRefNum - String
reference - String External reference. Used to identify the user in external systems/sources.
Example
{
  "caaRefNum": "xyz789",
  "reference": "xyz789"
}

UserRoleEnum

Values
Enum Value Description

ADMINISTRATOR

CREW

GUEST

INSTRUCTOR

RENTER

STAFF

STUDENT

Example
"ADMINISTRATOR"

VersionEvent

Description

Fields common to all version events (i.e. creations, updates and deletions).

Fields
Field Name Description
entityId - Id! The id of the entity.
entityType - VersionableEntityEnum! The type of the entity.
eventType - VersionEventTypeEnum! The type of versioning that took place.
happenedAt - DateTime! The point in time at which the event took place.
whoDoneIt - User The instigator of the event.
Possible Types
VersionEvent Types

Deletion

Example
{
  "entityId": Id,
  "entityType": "BOOKING",
  "eventType": "DELETION",
  "happenedAt": "2007-12-03T10:15:30Z",
  "whoDoneIt": User
}

VersionEventTypeEnum

Description

All possible version events that can happen to versionable entities.

Values
Enum Value Description

DELETION

Example
"DELETION"

VersionUnion

Description

Union of possible version changes of entities.

Types
Union Types

Deletion

Example
Deletion

VersionUnionConnection

Description

The connection type for VersionUnion.

Fields
Field Name Description
edges - [VersionUnionEdge] A list of edges.
nodes - [VersionUnion] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
Example
{
  "edges": [VersionUnionEdge],
  "nodes": [Deletion],
  "pageInfo": PageInfo
}

VersionUnionEdge

Description

An edge in a connection.

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

VersionableEntityEnum

Description

All possible entity types of which version changes can be retrieved.

Values
Enum Value Description

BOOKING

CLASS_THEORY

DUTY_TIME

EXAM

EXTRA_THEORY

FLIGHT

OPERATION

PROGRESS_TEST

RENTAL

THEORY_RELEASE

TRAINING

TYPE_QUESTIONNAIRE

Example
"BOOKING"