Graphql schema
schema {
mutation: Mutation
}
"A stringified JSON object."
scalar JSON
"A 13-character JavaScript timestamp."
scalar Timestamp
scalar Point
type Query {
"""Fetches an app by ID."""
app(id: ID!): App!
"""Fetches features by app ID."""
appFeatures(appId: ID!): [AppFeature!]!
"""Fetches feature properties by feature ID."""
featureProperties(featureId: ID!): [AppFeatureProperty!]!
"""Fetches cities."""
publicMarketplaceCities(country: String, region: String): [PublicSpatialCitySearchResponse]!
"""Fetches regions."""
publicMarketplaceRegions(country: String!): [PublicSpatialRegionSearchResponse]!
"""Fetches countries."""
publicMarketplaceCountries(continent: String!): [PublicSpatialCountrySearchResponse]!
}
type Mutation {
"""Updates tileset source on Mapbox."""
updateTilesetSource(appId: ID!): AsyncActionResponse!
"""Creates one feature."""
createOneFeature(input: CreateOneFeatureInput!): AppFeature!
"""Creates many features under the same app."""
createManyFeatures(input: CreateManyAppFeaturesInput!): [AppFeature!]!
"""Deletes one feature."""
deleteOneFeature(input: DeleteOneFeatureInput!): AppFeature!
"""Updates one feature."""
updateOneFeature(input: UpdateOneFeatureInput!): AppFeature!
"""Deletes many features."""
deleteManyFeatures(input: DeleteManyFeaturesInput!): DeleteManyFeaturesResponse!
"""Creates one feature property."""
createOneFeatureProperty(input: CreateOneFeaturePropertyInput!): AppFeatureProperty!
"""Deletes many feature properties."""
deleteManyFeatureProperties(input: DeleteManyFeaturePropertiesInput!): DeleteManyFeaturePropertiesResponse!
"""Creates many feature properties."""
createManyFeatureProperties(input: CreateManyFeaturePropertiesInput!): CreateManyFeaturePropertiesResponse!
"""Deletes one feature property."""
deleteOneFeatureProperty(input: DeleteOneFeaturePropertyInput!): AppFeatureProperty!
"""Updates one feature property."""
updateOneFeatureProperty(input: UpdateOneFeaturePropertyInput!): AppFeatureProperty!
}
input CreateManyFeaturePropertiesNestedResourceInput {
"The name of the feature property."
name: String!
"The value of the feature property."
value: String!
"The data type of the feature property."
dataType: DataType!
}
input CreateManyAppFeatureAndFeaturePropertiesResourceInput {
"The title of the feature."
title: String!
"The type of the feature. Required for apps of subtype PLACE_DATA_GEOGRAPHIC_LOCATION."
type: FeatureGeoType
"The country ISO code of the feature."
country: String
"The region ISO code of the feature."
region: String
"The city ISO code of the feature."
city: String
"The address of the feature."
address: String
"The coordinates of the feature. Required for apps of subtype PLACE_DATA_GEOGRAPHIC_LOCATION."
coordinates: JSON
"The list of feature Properties inputs."
featureProperties: [CreateManyFeaturePropertiesNestedResourceInput!]
}
type CreateManyAppFeaturesResourceResponse {
"The Feature ID."
id: ID!
"The number of created feature properties."
featurePropertiesCount: Int!
}
type BannedPlace {
code: String!
title: String!
featureId: ID!
}
type PlaceCap {
code: String!
currency_code: String!
cap_value: Float!
price: Float
}
input OrganizationDataFiltersCorporateAccommodationRates {
countryCode: String!
}
type CorporateAccommodationRate {
id: String!
name: String!
address: String
coordinates: JSON
type: FeatureGeoType!
properties: [FeaturePropertyForOrgs]!
}
type OrganizationOffice {
id: String!
organizationId: String!
name: String!
title: String!
appId: String!
coordinates: JSON
address: String
type: FeatureGeoType!
properties: [FeaturePropertyForOrgs]!
}
type FeaturePropertyForOrgs {
name: String!
value: String!
}
input PermissionInput {
"The permission category."
category: PermissionCategoryInput!
"The permission value."
value: String!
}
input CreateManyAppFeaturesInput {
"The app ID."
appId: ID!
"The list of feature inputs."
features: [CreateManyAppFeatureResourceInput!]!
}
input CreateManyAppFeatureResourceInput {
"The title of the feature."
title: String!
"The type of the feature. Required for apps of subtype PLACE_DATA_GEOGRAPHIC_LOCATION."
type: FeatureGeoType
"The country ISO code of the feature."
country: String
"The region ISO code of the feature."
region: String
"The city ISO code of the feature."
city: String
"The address of the feature."
address: String
"The coordinates of the feature. Required for apps of subtype PLACE_DATA_GEOGRAPHIC_LOCATION."
coordinates: JSON
}
type Permission {
"The permission ID."
id: ID!
"The installation ID."
installationId: ID!
"The permission category."
category: PermissionCategory!
"The permission value."
value: String!
"The creation date."
created: Timestamp!
"The last update date."
updated: Timestamp!
}
input CreateOneFeatureInput {
"The app ID."
appId: ID!
"The title of the feature."
title: String!
"The type of the feature. Required for apps of subtype PLACE_DATA_GEOGRAPHIC_LOCATION."
type: FeatureGeoType
"The country ISO code of the feature."
country: String
"The region ISO code of the feature."
region: String
"The city ISO code of the feature."
city: String
"The address of the feature."
address: String
"The coordinates of the feature. Required for apps of subtype PLACE_DATA_GEOGRAPHIC_LOCATION."
coordinates: JSON
}
input UpdateOneFeatureInput {
"The feature ID."
id: ID!
"The title of the feature."
title: String
"The type of the feature. Required for apps of subtype PLACE_DATA_GEOGRAPHIC_LOCATION."
type: FeatureGeoType
"The country ISO code of the feature."
country: String
"The region ISO code of the feature."
region: String
"The city ISO code of the feature."
city: String
"The address of the feature."
address: String
"The coordinates of the feature. Required for apps of subtype PLACE_DATA_GEOGRAPHIC_LOCATION."
coordinates: JSON
"The app ID."
appId: String
}
input UpdateOneFeaturePropertyInput {
"The feature property ID."
id: ID!
"The name of the feature property."
name: String
"The value of the feature property."
value: String
"The data type of the feature property."
dataType: DataType
}
input DeleteOneFeatureInput {
"The feature ID."
id: ID!
"The app ID."
appId: String
}
input DeleteOneFeaturePropertyInput {
"The feature property ID."
id: ID!
"The app ID."
appId: String
}
input CreateOneFeaturePropertyInput {
"The app ID."
appId: String!
"The feature ID."
featureId: String!
"The name of the feature property."
name: String!
"The value of the feature property."
value: String!
"The data type of the feature property."
dataType: DataType!
}
input CreateManyFeaturePropertiesInput {
"The feature ID."
featureId: ID!
"The name of the feature properties."
featureProperties: [CreateManyFeaturePropertiesResourceInput!]!
"The app ID."
appId: String
}
input CreateManyFeaturePropertiesResourceInput {
"The name of the feature property."
name: String!
"The value of the feature property."
value: String!
"The data type of the feature property."
dataType: DataType!
"The app ID."
appId: String
}
input EmissionsSegmentPayload {
origin: String!
destination: String!
distance: Float!
cabinClass: CabinClassTypes!
}
input TransfersPayloadOrigin {
iataCode: String
}
input TransfersPayloadDestination {
address: TransfersPayloadAddress
}
input TransfersPayloadAddress {
addressSearchPhrase: String
countryCode: String
}
type CreateManyFeaturePropertiesResponse {
"The number of created feature properties."
count: Int!
}
input DeleteManyFeaturesInput {
"The app ID."
appId: ID
"The Feature ID's"
featureIDs: [ID]
}
input DeleteManyFeaturePropertiesInput {
"The app ID."
appId: ID!
}
type DeleteManyFeaturesResponse {
"The number of deleted features."
count: Int!
}
type DeleteManyFeaturePropertiesResponse {
"The number of deleted feature properties."
count: Int!
}
type App {
"The app ID."
id: ID!
"The app name."
appName: String!
"The app description."
description: String!
"The thumbnail media ID."
thumbnailUrl: String
"Returns true if the application is Troop verified."
isVerified: Boolean!
"The creation date."
created: Timestamp!
"The date an app was last accessed."
lastAccessed: Timestamp
"The expiration date of the app."
expiryDate: Timestamp!
"The last update date."
updated: Timestamp!
"The app owner ID."
userId: String!
"The organization ID of the owner."
organizationId: String!
"The app status."
status: AppStatus!
"The app type."
type: AppType!
"The app subtype."
subType: AppSubType!
"The app visibility."
visibility: AppVisibility!
"Returns true if the application is Troop Featured."
isFeatured: Boolean!
"The app IntegrationType"
integrationType: IntegrationType!
"The support email"
supportEmail: String
"The Last Updated Date"
lastUpdatedDate: Timestamp
"The import status."
importStatus: ImportStatus
"Returns the number of time the app has been installed."
installationsCount: Int
"Returns true if the application is set to be a default Troop app."
isDefault: Boolean!
"The amount of features linked to this app"
nFeatures: Int
"Returns the appMetaData for this app."
appMetaDatas: [AppMetadata]
}
type ImportStatus {
"The import status ID."
id: ID!
"The app ID."
appId: ID!
"The execution ID."
executionId: String!
"The status."
status: ImportStatusStatus!
"The name of the current stage."
current_stage: ImportStatusStage!
"The events related to the import operation."
events: JSON!
"The type of import."
type: ImportStatusType!
"The creation date."
created: Timestamp!
"The last update date."
updated: Timestamp!
}
type AppMetadata {
"The app metadata ID."
id: ID!
"The app metadata name. For a Google Sheet ID: 'gSheetId'."
name: String!
"The app metadata value."
value: String!
"The data type of the metadata."
dataType: DataType!
"The app ID."
appId: String!
"The app metadata Title"
title: String!
"The app metadata description."
description: String!
}
type AppFeature @key(fields: "id") {
"The feature ID."
id: ID!
"The creation date."
created: Timestamp!
"The last update date."
updated: Timestamp!
"The title of the feature."
title: String!
"The type of the feature. Required for apps of subtype PLACE_DATA_GEOGRAPHIC_LOCATION."
type: FeatureGeoType
"The country ISO code of the feature."
country: String
"The region ISO code of the feature."
region: String
"The city ISO code of the feature."
city: String
"The address of the feature."
address: String
"The coordinates of the feature. Required for apps of subtype PLACE_DATA_GEOGRAPHIC_LOCATION."
coordinates: JSON
"The app ID."
appId: String!
"The feature properties."
featureProperties: [AppFeatureProperty!]
}
type AppFeatureProperty {
"The feature property ID."
id: ID!
"The name of the feature property."
name: String!
"The value of the feature property."
value: String!
"The data type of the property"
dataType: DataType!
"The app ID."
appId: String!
"The feature ID."
featureId: String!
}
enum ImportStatusStatus {
PROCESSING
COMPLETED
CANCELLED
FAILED
}
enum ImportStatusStage {
READ_GOOGLE_SHEET
IMPORT_DATABASE
IMPORT_MAPBOX
PROCESS_TILESET
GEOLOCATE_ADDRESS
FETCH_HOTEL_DETAILS
}
enum ImportStatusType {
CRON
MANUAL
}
enum AppStatus {
DRAFT
READY
ARCHIVED
DISABLED
}
enum AppVisibility {
PUBLIC
PRIVATE
}
enum PermissionCategory {
OWNER
ORGANIZATION
USER
USER_ROLE
}
enum PermissionCategoryInput {
ORGANIZATION
USER
USER_ROLE
}
enum AppType {
PLACE_DATA
LOCAL_TRANSPORT
ORGANIZATION_DATA
EMISSIONS
OAUTH2
}
enum AppSubType {
PLACE_DATA_GEOGRAPHIC_LOCATION
PLACE_DATA_GEOGRAPHIC_AREA
PLACE_DATA_EVENTS
LOCAL_TRANSPORT_RENTALS
ORGANIZATION_DATA_BANNED_PLACES
ORGANIZATION_DATA_OFFICE_LOCATIONS
ORGANIZATION_DATA_PLACE_CAPS
ORGANIZATION_DATA_CORPORATE_RATES
EMISSIONS_CALCULATION
OAUTH2_CALENDAR
}
enum AsyncActionResponseStatus {
SCHEDULED
PENDING
SUCCESSFUL
FAILED
CANCELLED
}
enum DataType {
STRING
INT
JSON
DECIMAL
BOOLEAN
DATE
}
enum FeatureGeoType {
Point
MultiPoint
Polygon
MultiPolygon
LineString
MultiLineString
}
enum IntegrationType {
API_FETCH
API_IMPORT
GOOGLE_SHEET
GOOGLE
MICROSOFT
}
enum EmissionsCalculationMode {
ACCOMMODATION
AIRCRAFT
TRAIN
BUS
CAR
}
enum CabinClassTypes {
NONE
BUSINESS
ECONOMY
FIRST
PREMIUM_ECONOMY
}
type AsyncActionResponse {
"The response status."
status: AsyncActionResponseStatus!
"The response message."
message: String
}
type PublicSpatialCitySearchResponse {
"The city code."
code: String!
"The city name."
name: String
"The continent code."
continent_code: String
"The country code."
country_code: String
"The region code."
region_code: String
}
type PublicSpatialCountrySearchResponse {
"The country code."
code: String!
"The country name."
name: String
"The country code."
continent_code: String
}
type PublicSpatialRegionSearchResponse {
"The region code."
code: String!
"The region name."
name: String
"The country code."
continent_code: String
"The country code."
country_code: String
}
type TransfersDataResponseAddress {
bookerEnteredAddress: String
resolvedAddress: String
fullResolvedAddress: FullResolvedAddress
latitude: Float
longitude: Float
hub: Boolean
iataCode: String
}
type FullResolvedAddress {
streetName: String
streetNumber: String
city: String
postalCode: String
region: String
countryCode: String
establishment: String
}
type TravelAddon {
id: String
type: String
price: Float
commission: Float
maxAllowed: Int
}
type TransfersDataQuote {
id: String
vehicleCategory: String
vehicleImageUrl: String
passengerCapacity: Int
luggageCapacity: Int
price: Float
commission: Float
currencyCode: String
combinedBabyAndBoosterSeatsCapacity: Int
expires: String
availableTravelAddons: [TravelAddon]
includedWaitingTimeInMinutes: Int
freeCancellationUntil: String
pricePerPassenger: Boolean
}
type TransfersDataResponseQuoteCategory {
outbound: [TransfersDataQuote]
inbound: [TransfersDataQuote]
}
type TicketData {
USD: String
ItemID: String
Price: Float
PriceComments: String
Section: String
ServiceFee: Float
}
enum OrganizationDataSpecType {
FEATURE
FEATURE_PROPERTY
}
type OrganizationDataSpecOption {
label: String!
value: String!
}
type FeatureValidatorFilterProperties {
dependsOn: String
filterKey: String
relatedFields: [String]
}
type EmissionsEquivalency {
type: String
values: [String]
amount: Float
unit: String
}
Last updated