type Actor {
  name: String!
  age: Int
  favMovie: Movie
  obj: JSONObject
  spaceExternalId: String!
  externalId: ID!
}

type ActorAggregateConnection {
  edges: [_ActorAggregateEdge]!
  items: [_ActorAggregateResult]!
  pageInfo: PageInfo!
}

type ActorConnection {
  edges: [_ActorEdge]!
  items: [Actor]!
  pageInfo: PageInfo!
}

type DataPoint {
  timestamp: Timestamp
  value: DataPointValue
}

"""
Represents the value of a data point. Can be either a String (<= 255 characters) or a number in the range [-1e100, 1e100]. 
"""
scalar DataPointValue

"""
Represents a 64-bit integer value. Note that some consumers as JavaScript only supports [-(2^53)+1, (2^53)-1].
"""
scalar Int64

"""Represents a plain JSON object."""
scalar JSONObject

type MachinePump {
  name: String!
  description: String!
  state: String!
  weight: Int!
  isActive: Boolean!
  production_ts: String!
  pressure_ts: String!
  location_3dmr: String!
  location_3dn: String!
  pnid_file: String!
  spaceExternalId: String!
  externalId: ID!
}

type MachinePump2 {
  name: String!
  description: String!
  state: String!
  weight: Int!
  isActive: Boolean!
  production_ts: String!
  pressure_ts: String!
  location_3dmr: String!
  location_3dn: String!
  pnid_file: String!
  spaceExternalId: String!
  externalId: ID!
}

type MachinePump2AggregateConnection {
  edges: [_MachinePump2AggregateEdge]!
  items: [_MachinePump2AggregateResult]!
  pageInfo: PageInfo!
}

type MachinePump2Connection {
  edges: [_MachinePump2Edge]!
  items: [MachinePump2]!
  pageInfo: PageInfo!
}

type MachinePumpAggregateConnection {
  edges: [_MachinePumpAggregateEdge]!
  items: [_MachinePumpAggregateResult]!
  pageInfo: PageInfo!
}

type MachinePumpConnection {
  edges: [_MachinePumpEdge]!
  items: [MachinePump]!
  pageInfo: PageInfo!
}

type Movie {
  name: String!
  description: String
  watchedIt: Boolean
  imdbRating: Float
  releasedYear: Int
  gross: Int
  runTime: Int
  actors(first: Int, after: String, filter: _ListActorFilter, sort: [_ActorSort!]): ActorConnection
  spaceExternalId: String!
  externalId: ID!
}

type MovieAggregateConnection {
  edges: [_MovieAggregateEdge]!
  items: [_MovieAggregateResult]!
  pageInfo: PageInfo!
}

type MovieConnection {
  edges: [_MovieEdge]!
  items: [Movie]!
  pageInfo: PageInfo!
}

type PageInfo {
  hasPreviousPage: Boolean!
  hasNextPage: Boolean!
  startCursor: String
  endCursor: String
}

type Query {
  listActor(first: Int, after: String, filter: _ListActorFilter, sort: [_ActorSort!]): ActorConnection
  searchActor(query: String!, fields: [_SearchActorFields!], filter: _SearchActorFilter, first: Int): ActorConnection

  """This query can help find aggregation for ___Actor___ type"""
  aggregateActor(
    """Filter fields by keyword"""
    query: String

    """Fields where `query` and `aggregations` will be applied"""
    fields: [_SearchActorFields!]

    """Apply groupBy operation on the fields"""
    groupBy: [_SearchActorFields!]

    """Add filter to narrow down the query results"""
    filter: _SearchActorFilter

    """After cursor to paginate response"""
    after: String
  ): ActorAggregateConnection
  listMovie(first: Int, after: String, filter: _ListMovieFilter, sort: [_MovieSort!]): MovieConnection
  searchMovie(query: String!, fields: [_SearchMovieFields!], filter: _SearchMovieFilter, first: Int): MovieConnection

  """This query can help find aggregation for ___Movie___ type"""
  aggregateMovie(
    """Filter fields by keyword"""
    query: String

    """Fields where `query` and `aggregations` will be applied"""
    fields: [_SearchMovieFields!]

    """Apply groupBy operation on the fields"""
    groupBy: [_SearchMovieFields!]

    """Add filter to narrow down the query results"""
    filter: _SearchMovieFilter

    """After cursor to paginate response"""
    after: String
  ): MovieAggregateConnection
  listMachinePump(first: Int, after: String, filter: _ListMachinePumpFilter, sort: [_MachinePumpSort!]): MachinePumpConnection
  searchMachinePump(query: String!, fields: [_SearchMachinePumpFields!], filter: _SearchMachinePumpFilter, first: Int): MachinePumpConnection

  """This query can help find aggregation for ___MachinePump___ type"""
  aggregateMachinePump(
    """Filter fields by keyword"""
    query: String

    """Fields where `query` and `aggregations` will be applied"""
    fields: [_SearchMachinePumpFields!]

    """Apply groupBy operation on the fields"""
    groupBy: [_SearchMachinePumpFields!]

    """Add filter to narrow down the query results"""
    filter: _SearchMachinePumpFilter

    """After cursor to paginate response"""
    after: String
  ): MachinePumpAggregateConnection
  listMachinePump2(first: Int, after: String, filter: _ListMachinePump2Filter, sort: [_MachinePump2Sort!]): MachinePump2Connection
  searchMachinePump2(query: String!, fields: [_SearchMachinePump2Fields!], filter: _SearchMachinePump2Filter, first: Int): MachinePump2Connection

  """This query can help find aggregation for ___MachinePump2___ type"""
  aggregateMachinePump2(
    """Filter fields by keyword"""
    query: String

    """Fields where `query` and `aggregations` will be applied"""
    fields: [_SearchMachinePump2Fields!]

    """Apply groupBy operation on the fields"""
    groupBy: [_SearchMachinePump2Fields!]

    """Add filter to narrow down the query results"""
    filter: _SearchMachinePump2Filter

    """After cursor to paginate response"""
    after: String
  ): MachinePump2AggregateConnection
}

enum SortDirection {
  ASC
  DESC
}

type TimeSeries {
  id: Int64
  externalId: String
  name: String
  isString: Boolean
  metadata: JSONObject
  unit: String
  assetId: Int64
  isStep: Boolean
  description: String
  securityCategories: [Int64]
  datasetId: Int64
  dataPoints(start: Int64, end: Int64, limit: Int): [DataPoint]
}

"""
A timestamp with UTC-offset, formatted as a ISO-8601 date time string, with potentially microsecond resolution.Note as input the timestamp can be formatted as a number, which is assumed to represent milliseconds since Unix epoch.
"""
scalar Timestamp

type _ActorAggregateEdge {
  node: _ActorAggregateResult!
  cursor: String
}

type _ActorAggregateFieldCountResult {
  externalId: Int
  name: Int
  age: Int
  favMovie: Int
  obj: Int
}

type _ActorAggregateFieldResult {
  age: Int
}

type _ActorAggregateHistogramFieldResult {
  age: [_AggregateHistogramObjectType]
}

"""This type contains Aggregation Results for the ___Actor___ type"""
type _ActorAggregateResult {
  """Apply groupBy operations on the _fields_ argument passed"""
  group: JSONObject

  """
  Average for selected nodes, can only be selected for _numeric_ fields, and always returns a `Float` response
  """
  avg: _ActorAvgAggregateFieldResult

  """Minimum of any of the nodes, can only be selected for _numeric_ fields"""
  min: _ActorAggregateFieldResult

  """Maximum of any of the nodes, can only be selected for _numeric_ fields"""
  max: _ActorAggregateFieldResult

  """Count for selected fields, can use this to count the number of nodes"""
  count: _ActorAggregateFieldCountResult

  """Sum for selected fields, can only be selected for _numeric_ fields"""
  sum: _ActorAggregateFieldResult

  """Histogram """
  histogram(
    """Interval at which histogram will be sampled"""
    interval: Int!
  ): _ActorAggregateHistogramFieldResult
}

type _ActorAvgAggregateFieldResult {
  age: Float
}

type _ActorEdge {
  node: Actor!
  cursor: String
}

input _ActorSort {
  externalId: SortDirection
  spaceExternalId: SortDirection
  name: SortDirection
  age: SortDirection
}

type _AggregateHistogramObjectType {
  start: Int
  count: Int
}

input _BooleanCondition {
  eq: Boolean
  isNull: Boolean
  in: [Boolean!]
}

input _FloatCondition {
  eq: Float
  isNull: Boolean
  in: [Float!]
  gt: Float
  lt: Float
  gte: Float
  lte: Float
}

input _IDCondition {
  eq: ID
  isNull: Boolean
  in: [ID!]
}

input _Int64Condition {
  eq: Int64
  isNull: Boolean
  in: [Int64!]
  gt: Int64
  lt: Int64
  gte: Int64
  lte: Int64
}

input _IntCondition {
  eq: Int
  isNull: Boolean
  in: [Int!]
  gt: Int
  lt: Int
  gte: Int
  lte: Int
}

input _ListActorFilter {
  and: [_ListActorFilter!]
  or: [_ListActorFilter!]
  not: _ListActorFilter
  externalId: _IDCondition
  spaceExternalId: _StringCondition
  name: _StringCondition
  age: _IntCondition
  favMovie: _ListMovieFilter
}

input _ListBooleanFilter {
  containsAll: [Boolean]
  containsAny: [Boolean]
}

input _ListFloatFilter {
  containsAll: [Float]
  containsAny: [Float]
}

input _ListIDFilter {
  containsAll: [ID]
  containsAny: [ID]
}

input _ListInt64Filter {
  containsAll: [Int64]
  containsAny: [Int64]
}

input _ListIntFilter {
  containsAll: [Int]
  containsAny: [Int]
}

input _ListMachinePump2Filter {
  and: [_ListMachinePump2Filter!]
  or: [_ListMachinePump2Filter!]
  not: _ListMachinePump2Filter
  externalId: _IDCondition
  spaceExternalId: _StringCondition
  name: _StringCondition
  description: _StringCondition
  state: _StringCondition
  weight: _IntCondition
  isActive: _BooleanCondition
  production_ts: _StringCondition
  pressure_ts: _StringCondition
  location_3dmr: _StringCondition
  location_3dn: _StringCondition
  pnid_file: _StringCondition
}

input _ListMachinePumpFilter {
  and: [_ListMachinePumpFilter!]
  or: [_ListMachinePumpFilter!]
  not: _ListMachinePumpFilter
  externalId: _IDCondition
  spaceExternalId: _StringCondition
  name: _StringCondition
  description: _StringCondition
  state: _StringCondition
  weight: _IntCondition
  isActive: _BooleanCondition
  production_ts: _StringCondition
  pressure_ts: _StringCondition
  location_3dmr: _StringCondition
  location_3dn: _StringCondition
  pnid_file: _StringCondition
}

input _ListMovieFilter {
  and: [_ListMovieFilter!]
  or: [_ListMovieFilter!]
  not: _ListMovieFilter
  externalId: _IDCondition
  spaceExternalId: _StringCondition
  name: _StringCondition
  description: _StringCondition
  watchedIt: _BooleanCondition
  imdbRating: _FloatCondition
  releasedYear: _IntCondition
  gross: _IntCondition
  runTime: _IntCondition
}

input _ListStringFilter {
  containsAll: [String]
  containsAny: [String]
}

input _ListTimestampFilter {
  containsAll: [Timestamp]
  containsAny: [Timestamp]
}

type _MachinePump2AggregateEdge {
  node: _MachinePump2AggregateResult!
  cursor: String
}

type _MachinePump2AggregateFieldCountResult {
  externalId: Int
  name: Int
  description: Int
  state: Int
  weight: Int
  isActive: Int
  production_ts: Int
  pressure_ts: Int
  location_3dmr: Int
  location_3dn: Int
  pnid_file: Int
}

type _MachinePump2AggregateFieldResult {
  weight: Int
}

type _MachinePump2AggregateHistogramFieldResult {
  weight: [_AggregateHistogramObjectType]
}

"""This type contains Aggregation Results for the ___MachinePump2___ type"""
type _MachinePump2AggregateResult {
  """Apply groupBy operations on the _fields_ argument passed"""
  group: JSONObject

  """
  Average for selected nodes, can only be selected for _numeric_ fields, and always returns a `Float` response
  """
  avg: _MachinePump2AvgAggregateFieldResult

  """Minimum of any of the nodes, can only be selected for _numeric_ fields"""
  min: _MachinePump2AggregateFieldResult

  """Maximum of any of the nodes, can only be selected for _numeric_ fields"""
  max: _MachinePump2AggregateFieldResult

  """Count for selected fields, can use this to count the number of nodes"""
  count: _MachinePump2AggregateFieldCountResult

  """Sum for selected fields, can only be selected for _numeric_ fields"""
  sum: _MachinePump2AggregateFieldResult

  """Histogram """
  histogram(
    """Interval at which histogram will be sampled"""
    interval: Int!
  ): _MachinePump2AggregateHistogramFieldResult
}

type _MachinePump2AvgAggregateFieldResult {
  weight: Float
}

type _MachinePump2Edge {
  node: MachinePump2!
  cursor: String
}

input _MachinePump2Sort {
  externalId: SortDirection
  spaceExternalId: SortDirection
  name: SortDirection
  description: SortDirection
  state: SortDirection
  weight: SortDirection
  isActive: SortDirection
  production_ts: SortDirection
  pressure_ts: SortDirection
  location_3dmr: SortDirection
  location_3dn: SortDirection
  pnid_file: SortDirection
}

type _MachinePumpAggregateEdge {
  node: _MachinePumpAggregateResult!
  cursor: String
}

type _MachinePumpAggregateFieldCountResult {
  externalId: Int
  name: Int
  description: Int
  state: Int
  weight: Int
  isActive: Int
  production_ts: Int
  pressure_ts: Int
  location_3dmr: Int
  location_3dn: Int
  pnid_file: Int
}

type _MachinePumpAggregateFieldResult {
  weight: Int
}

type _MachinePumpAggregateHistogramFieldResult {
  weight: [_AggregateHistogramObjectType]
}

"""This type contains Aggregation Results for the ___MachinePump___ type"""
type _MachinePumpAggregateResult {
  """Apply groupBy operations on the _fields_ argument passed"""
  group: JSONObject

  """
  Average for selected nodes, can only be selected for _numeric_ fields, and always returns a `Float` response
  """
  avg: _MachinePumpAvgAggregateFieldResult

  """Minimum of any of the nodes, can only be selected for _numeric_ fields"""
  min: _MachinePumpAggregateFieldResult

  """Maximum of any of the nodes, can only be selected for _numeric_ fields"""
  max: _MachinePumpAggregateFieldResult

  """Count for selected fields, can use this to count the number of nodes"""
  count: _MachinePumpAggregateFieldCountResult

  """Sum for selected fields, can only be selected for _numeric_ fields"""
  sum: _MachinePumpAggregateFieldResult

  """Histogram """
  histogram(
    """Interval at which histogram will be sampled"""
    interval: Int!
  ): _MachinePumpAggregateHistogramFieldResult
}

type _MachinePumpAvgAggregateFieldResult {
  weight: Float
}

type _MachinePumpEdge {
  node: MachinePump!
  cursor: String
}

input _MachinePumpSort {
  externalId: SortDirection
  spaceExternalId: SortDirection
  name: SortDirection
  description: SortDirection
  state: SortDirection
  weight: SortDirection
  isActive: SortDirection
  production_ts: SortDirection
  pressure_ts: SortDirection
  location_3dmr: SortDirection
  location_3dn: SortDirection
  pnid_file: SortDirection
}

type _MovieAggregateEdge {
  node: _MovieAggregateResult!
  cursor: String
}

type _MovieAggregateFieldCountResult {
  externalId: Int
  name: Int
  description: Int
  watchedIt: Int
  imdbRating: Int
  releasedYear: Int
  gross: Int
  runTime: Int
}

type _MovieAggregateFieldResult {
  imdbRating: Float
  releasedYear: Int
  gross: Int
  runTime: Int
}

type _MovieAggregateHistogramFieldResult {
  imdbRating: [_AggregateHistogramObjectType]
  releasedYear: [_AggregateHistogramObjectType]
  gross: [_AggregateHistogramObjectType]
  runTime: [_AggregateHistogramObjectType]
}

"""This type contains Aggregation Results for the ___Movie___ type"""
type _MovieAggregateResult {
  """Apply groupBy operations on the _fields_ argument passed"""
  group: JSONObject

  """
  Average for selected nodes, can only be selected for _numeric_ fields, and always returns a `Float` response
  """
  avg: _MovieAvgAggregateFieldResult

  """Minimum of any of the nodes, can only be selected for _numeric_ fields"""
  min: _MovieAggregateFieldResult

  """Maximum of any of the nodes, can only be selected for _numeric_ fields"""
  max: _MovieAggregateFieldResult

  """Count for selected fields, can use this to count the number of nodes"""
  count: _MovieAggregateFieldCountResult

  """Sum for selected fields, can only be selected for _numeric_ fields"""
  sum: _MovieAggregateFieldResult

  """Histogram """
  histogram(
    """Interval at which histogram will be sampled"""
    interval: Int!
  ): _MovieAggregateHistogramFieldResult
}

type _MovieAvgAggregateFieldResult {
  imdbRating: Float
  releasedYear: Float
  gross: Float
  runTime: Float
}

type _MovieEdge {
  node: Movie!
  cursor: String
}

input _MovieSort {
  externalId: SortDirection
  spaceExternalId: SortDirection
  name: SortDirection
  description: SortDirection
  watchedIt: SortDirection
  imdbRating: SortDirection
  releasedYear: SortDirection
  gross: SortDirection
  runTime: SortDirection
}

enum _SearchActorFields {
  name
  age
  externalId
  spaceExternalId
}

input _SearchActorFilter {
  and: [_SearchActorFilter!]
  or: [_SearchActorFilter!]
  not: _SearchActorFilter
  externalId: _IDCondition
  spaceExternalId: _StringCondition
  name: _StringCondition
  age: _IntCondition
}

enum _SearchMachinePump2Fields {
  name
  description
  state
  weight
  isActive
  production_ts
  pressure_ts
  location_3dmr
  location_3dn
  pnid_file
  externalId
  spaceExternalId
}

input _SearchMachinePump2Filter {
  and: [_SearchMachinePump2Filter!]
  or: [_SearchMachinePump2Filter!]
  not: _SearchMachinePump2Filter
  externalId: _IDCondition
  spaceExternalId: _StringCondition
  name: _StringCondition
  description: _StringCondition
  state: _StringCondition
  weight: _IntCondition
  isActive: _BooleanCondition
  production_ts: _StringCondition
  pressure_ts: _StringCondition
  location_3dmr: _StringCondition
  location_3dn: _StringCondition
  pnid_file: _StringCondition
}

enum _SearchMachinePumpFields {
  name
  description
  state
  weight
  isActive
  production_ts
  pressure_ts
  location_3dmr
  location_3dn
  pnid_file
  externalId
  spaceExternalId
}

input _SearchMachinePumpFilter {
  and: [_SearchMachinePumpFilter!]
  or: [_SearchMachinePumpFilter!]
  not: _SearchMachinePumpFilter
  externalId: _IDCondition
  spaceExternalId: _StringCondition
  name: _StringCondition
  description: _StringCondition
  state: _StringCondition
  weight: _IntCondition
  isActive: _BooleanCondition
  production_ts: _StringCondition
  pressure_ts: _StringCondition
  location_3dmr: _StringCondition
  location_3dn: _StringCondition
  pnid_file: _StringCondition
}

enum _SearchMovieFields {
  name
  description
  watchedIt
  imdbRating
  releasedYear
  gross
  runTime
  externalId
  spaceExternalId
}

input _SearchMovieFilter {
  and: [_SearchMovieFilter!]
  or: [_SearchMovieFilter!]
  not: _SearchMovieFilter
  externalId: _IDCondition
  spaceExternalId: _StringCondition
  name: _StringCondition
  description: _StringCondition
  watchedIt: _BooleanCondition
  imdbRating: _FloatCondition
  releasedYear: _IntCondition
  gross: _IntCondition
  runTime: _IntCondition
}

input _StringCondition {
  eq: String
  isNull: Boolean
  in: [String!]
  gt: String
  lt: String
  gte: String
  lte: String
  prefix: String
}

input _TimestampCondition {
  eq: Timestamp
  isNull: Boolean
  in: [Timestamp!]
  gt: Timestamp
  lt: Timestamp
  gte: Timestamp
  lte: Timestamp
}