In Petro.ai 5 we've consolidated all API requests into a single endpoint.

# Quick Reference

Petro.ai now uses a new endpoint that delivers all the data types to the API user. POST /api/v1/data

Action Example
Get { "type": "t", "request": "get", "query": ( null | { fields... } ), "options": ( null | { limit: int, skip: int } ) }
Insert { "type": "t", "request": "insert", "body": [ { ... } ] }
Replace { "type": "t", "request": "replace", "body": [ { ... } ] }
Update { "type": "t", "request": "update", "query": {}, "body": { <fields to update> } }
Delete { "type": "t", "request": "delete", "query": {} }

# Data Operations

# Get all data types

The types request returns a list of strings with the available collection types an API user can query. The strings returned can be used in other queries in the "types" field.

{
  "request": "types"
}

# Sample Response

Below is an example response.

{
    "data": [
        "WellIdentifier",
        "Setting",
        "Plugin",
        "MonthlyProduction",
        "Job",
        "Petron",
        "EconomicsProject",
        "Well",
        "Link",
        "Comment",
        "Schedule",
        "AppSetting",
        "AnnotationTag",
        "ActivityLog",
        "TypeCurveGenerator",
        "RealTimeProduction",
        "DailyProduction",
        "WellStat",
        "Notification",
        "CronEvent",
        "DeclineCurveAnalysisModel",
        "UnitsDefinition",
        "WorkspaceDefinition",
        "CronJobResult",
        "JobResult",
        "VersionDocument"
    ],
    ...
}

# Retrieving data

To retrieve data from the endpoint, make a POST request to /api/v1/data with a body in the following form.

{
  "request": "get",
  "type": "doc",
  "query": {
       "name": "a document with this value!"
  }
}

To retrieve all of the data, simply leave the query field null or empty.

# Inserting data

To insert data to the endpoint, make a POST request to /api/v1/data with a body in the following form.

{
  "request": "insert",
  "type": "doc",
  "body": [ { ... } ]
}

# Replacing data (Upserts)

While replacing data has the same syntax as inserting, the differences reside in the behavior. Documents provided in the data array that already have an objectId will get replaced, the rest would be inserted.

{
  "request": "replace",
  "type": "doc",
  "body": [ { ... } ]
}

# Updating data

Updates have been improved since the 4.3.2 release. To define the fields, you'll need to provide them in the "options" property on the body. For example, updating a document with type="doc" with id=2 and a field named name you would POST something like this:

{
   "type": "doc",
   "request": "update",
   "query": {
       "id": 2
   },
   "body": {
       "name": "Updated Name!"
   }
}

# Deleting data

Deletes are functionally similar to gets except the method you provide is "delete" instead of "get". The primary difference is that a delete does not accept empty queries. It will return an OK but the result object will have a message indicating that you tried something illegal. Example for deleting a specific document:

{
   "type": "doc",
   "request": "delete",
   "query": {
      "id": 123
   }
}

# PetroQuery

The PetroQuery is a general way for developers to query data inside the Petro.ai database. In C#, the class, utilizes MemberExpressions to evaluate fields from a given type PetroQuery. Queries passed in through the API rely heavily on the serializer.

# API

In order to query a document through the API, perform a POST to /api/v1/data. The body of the request will be something like:

{
  "type": //<data-type-name>,
  "method": "get",
  "query": {
     "id": "abc"
  }
}

# Query Operations

Currently the supported query operations are:

  • In The system will infer an in operator if a query body passes something like "id": ["1", "2", "3"]. If a user wants to ensure that a field is equal to an array, the user will have to use the Eq operator.
  • Eq - Equal
  • Ne - Not Equal
  • Gt - Greater Than
  • Gte - Greater Than or Equal
  • Lt - Less Than
  • Lte - Less Than or Equal
  • Regex - Perform a regex search on a field.
  • Polygon - Search for data within a polygon
  • Bounds - Search for data within a bounding box

# Using Query Operators

To specify a query operator in the query block use the following.

{
  "query": {
     "createdAt": {
         "gt": "2020-01-01"
     }
  }
}

# Multiple Conditions

The API supports having many conditions for a single field with the following.

{
  "query": {
     "createdAt": {
         "gt": "2020-01-01"
         "lt": "2020-12-31"
     }
  }
}

# RegEx Queries

The RegEx query is straight forward but can respond 'aggressively'.

// Sample POST to /api/v1/data
{
   "type": "Well",
   "request": "get",
   "query": {
       "name": {
           // No flags
           "regex": "TOM.*"
       },
       "basinName": {
           // With flags
           "regex": "/tom.*/i"
       },
       "leaseName": {
          // With sass
          "regex": { "data": "thing" }
       }
   }
}

# Data Types

Below are the data types available in Petro.ai version 5.

# WorkspaceDefinition

Property Data type
"pid" "String"
"name" "String"
"definition" "ForgeRouteDefinition"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# DailyProduction

Property Data type
"pwi" "String"
"wellId" "String"
"prodDate" "DateTime"
"uptime" "Duration"
"duration" "Duration"
"daysOn" "Double"
"monthsOn" "Double"
"casingPressure" "Pressure"
"casingTemp" "Temperature"
"flowlinePressure" "Pressure"
"tubingPressure" "Pressure"
"tubingTemp" "Temperature"
"gasLiftRate" "GasRate"
"gasLiftVol" "GasVolume"
"oilRate" "LiquidRate"
"oilVol" "LiquidVolume"
"oilCum" "LiquidVolume"
"condensateRate" "LiquidRate"
"condensateVol" "LiquidVolume"
"condensateCum" "LiquidVolume"
"gasRate" "GasRate"
"gasVol" "GasVolume"
"gasCum" "GasVolume"
"waterRate" "LiquidRate"
"waterVol" "LiquidVolume"
"waterCum" "LiquidVolume"
"boeRate" "BoeRate"
"boeVol" "BoeVolume"
"boeCum" "BoeVolume"
"waterInjRate" "LiquidRate"
"waterInjVol" "LiquidVolume"
"waterInjCum" "LiquidVolume"
"gasInjRate" "GasRate"
"gasInjVol" "GasVolume"
"gasInjCum" "GasVolume"
"wellCount" "Int32"
"forecast" "ForecastProductionData"
"wellName" "String"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# MonthlyProduction

Property Data type
"pwi" "String"
"wellId" "String"
"prodDate" "DateTime"
"uptime" "Duration"
"duration" "Duration"
"daysOn" "Double"
"monthsOn" "Double"
"casingPressure" "Pressure"
"casingTemp" "Temperature"
"flowlinePressure" "Pressure"
"tubingPressure" "Pressure"
"tubingTemp" "Temperature"
"gasLiftRate" "GasRate"
"gasLiftVol" "GasVolume"
"oilRate" "LiquidRate"
"oilVol" "LiquidVolume"
"oilCum" "LiquidVolume"
"condensateRate" "LiquidRate"
"condensateVol" "LiquidVolume"
"condensateCum" "LiquidVolume"
"gasRate" "GasRate"
"gasVol" "GasVolume"
"gasCum" "GasVolume"
"waterRate" "LiquidRate"
"waterVol" "LiquidVolume"
"waterCum" "LiquidVolume"
"boeRate" "BoeRate"
"boeVol" "BoeVolume"
"boeCum" "BoeVolume"
"waterInjRate" "LiquidRate"
"waterInjVol" "LiquidVolume"
"waterInjCum" "LiquidVolume"
"gasInjRate" "GasRate"
"gasInjVol" "GasVolume"
"gasInjCum" "GasVolume"
"wellCount" "Int32"
"forecast" "ForecastProductionData"
"wellName" "String"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# Well

Property Data type
"pwi" "String"
"wellId" "String"
"rigId" "String"
"name" "String"
"operatorName" "String"
"isVirtual" "Boolean"
"typeWellCount" "Int32"
"typeAgg" "String"
"pid" "String"
"entityType" "String"
"primaryProduct" "String"
"statusCurrent" "String"
"statusCurrentDate" "DateTime"
"lastProductionDate" "DateTime"
"permitDate" "DateTime"
"spudDate" "DateTime"
"completionDate" "DateTime"
"finalDrillingDate" "DateTime"
"rigReleaseDate" "DateTime"
"drillAbandonmentDate" "DateTime"
"suspendedDate" "DateTime"
"abandonmentDate" "DateTime"
"firstProductionDate" "DateTime"
"leaseName" "String"
"leaseNumber" "String"
"wellNumber" "String"
"fieldName" "String"
"basinName" "String"
"reservoirName" "String"
"lateralLength" "Length"
"fracStages" "Int32"
"totalProppant" "Mass"
"totalFluidPumped" "Volume"
"perforationUpper" "Length"
"totalDepth" "Length"
"measuredDepth" "Length"
"formationName" "String"
"stateName" "String"
"countyName" "String"
"countryName" "String"
"surfaceLoc" "GeoPoint"
"midPointLoc" "GeoPoint"
"bottomHoleLoc" "GeoPoint"
"aoi" "GeoMultiPolygon"
"production" "ProductionForecast"
"prod" "ProductionSummary"
"eur" "EUREstimate"
"eurLatest" "EUREstimate"
"typeEUR" "TypeEUREstimate"
"typeEURLatest" "TypeEUREstimate"
"typeWeight" "Double"
"reserveCategory" "String"
"groups" "HashSet`1"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# Setting

Property Data type
"name" "String"
"parentId" "String"
"referenceId" "String"
"scope" "SettingScope"
"version" "String"
"data" "String"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# Schedule

Property Data type
"pid" "String"
"name" "String"
"notes" "ICollection`1"
"economicScenarios" "ICollection`1"
"priceScenarios" "ICollection`1"
"curves" "ICollection`1"
"wells" "ICollection`1"
"status" "ScheduleStatus"
"autoConfig" "SmartScheduleConfiguration"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# Comment

Property Data type
"annotationType" "AnnotationType"
"userId" "String"
"pid" "String"
"route" "String"
"context" "Dictionary`2"
"targetId" "String"
"targetType" "String"
"partName" "String"
"threadId" "String"
"mentionIds" "HashSet`1"
"content" "String"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"
Property Data type
"parentId" "String"
"childId" "String"
"parentType" "String"
"childType" "String"
"linkType" "String"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# Plugin

Property Data type
"name" "String"
"version" "String"
"description" "String"
"namespace" "String"
"company" "String"
"enabled" "Boolean"
"errorMessage" "String"
"containers" "ICollection`1"
"triggers" "ICollection`1"
"events" "ICollection`1"
"tasks" "ICollection`1"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# WellStat

Property Data type
"modelName" "String"
"version" "String"
"pid" "String"
"pwi" "String"
"wellId" "String"
"wellName" "String"
"well" "Well"
"cube" "CubeStat"
"cmplJob" "CompletionJob"
"survey" "WellDirectionalSurveyStat"
"prod" "ProdStat"
"decline" "DeclineCurveStat"
"dca" "DeclineCurveAnalysisModel"
"hasError" "Boolean"
"errorMessage" "String"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# JobResult

Property Data type
"taskName" "String"
"pid" "String"
"taskId" "String"
"cronJobId" "String"
"options" "String"
"startedAt" "DateTime"
"completedAt" "DateTime"
"scheduledAt" "DateTime"
"expectedFinish" "DateTime"
"isCancelled" "Boolean"
"executionTime" "Single"
"jobStatus" "JobStatus"
"position" "Int32"
"activityId" "String"
"message" "String"
"summary" "String"
"log" "ICollection`1"
"progress" "Double"
"result" "Object"
"resultType" "String"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# CronJob

Property Data type
"name" "String"
"schedule" "CronSchedule"
"taskName" "String"
"taskOptions" "String"
"scheduleSummary" "String"
"LastExecutionTime" "DateTime"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# WellIdentifier

Property Data type
"pwi" "String"
"identifier" "String"
"sourceId" "String"
"isWellId" "Boolean"
"identifierType" "IdentifierTypes"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# DeclineCurveAnalysisModel

Property Data type
"pwi" "String"
"pid" "String"
"workflowState" "ModelWorkflowState"
"version" "Int32"
"name" "String"
"isLatest" "Boolean"
"submittedBy" "String"
"lastAriesExport" "DateTime"
"submittedAt" "DateTime"
"approvedBy" "String"
"approvedAt" "DateTime"
"rejectedBy" "String"
"rejectedAt" "DateTime"
"model" "FullFluidDeclineCurveAnalysis"
"forecastSummary" "ForecastSummary"
"fitEvaluation" "FluidEvaluationSummary"
"vars" "ForecastVariables"
"isTypeCurve" "Boolean"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# VersionDocument

Property Data type
"type" "String"
"oid" "String"
"body" "Object"
"event" "String"
"versionTimestamp" "Int64"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# Job

Property Data type
"name" "String"
"typeName" "String"
"parentId" "String"
"expireAt" "DateTime"
"executions" "Int32"
"lastExecution" "DateTime"
"payload" "String"
"externalJobId" "String"
"startAt" "DateTime"
"schedule" "String"
"maxExecutions" "Int32"
"executeImmediately" "Boolean"
"endAt" "DateTime"
"status" "JobStatus"
"lastProgress" "Double"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# Notification

Property Data type
"userId" "String"
"targetId" "String"
"targetDataType" "String"
"notificationType" "NotificationType"
"status" "NotificationStatus"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# AppSetting

Property Data type
"orgName" "String"
"databaseUnitsDefinitionId" "String"
"reportingUnitsDefinitionId" "String"
"displayTimeZoneId" "String"
"emailSettings" "EmailSettings"
"forecastAppSettings" "ForecastAppSettings"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# TypeCurveGenerator

Property Data type
"name" "String"
"wellIdPrefix" "String"
"pid" "String"
"aggregations" "List`1"
"minWellCount" "Double"
"lastGeneratedAt" "DateTime"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# EconomicsProject

Property Data type
"pid" "String"
"name" "String"
"cashFlow" "CashflowDetails"
"evaluationSummary" "EvaluationSummary"
"scheduleIds" "List`1"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# Petron

Property Data type
"name" "String"
"description" "String"
"notes" "String"
"type" "String"
"ownerId" "String"
"unitsId" "String"
"timeZoneId" "String"
"bounds" "GeoMultiPolygon"
"isPublic" "Boolean"
"assigneeIds" "HashSet`1"
"approverIds" "HashSet`1"
"approvalSummary" "PetronApprovalSummary"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# AnnotationTag

Property Data type
"approvalStatus" "ApprovalStatus"
"annotationType" "AnnotationType"
"content" "String"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# RealTimeProduction

Property Data type
"pwi" "String"
"wellId" "String"
"dailyProdId" "String"
"time" "DateTime"
"isValid" "Boolean"
"receivedAt" "DateTime"
"casingPressure" "Pressure"
"casingTemp" "Temperature"
"flowlinePressure" "Pressure"
"tubingPressure" "Pressure"
"tubingTemp" "Temperature"
"gasLiftRate" "GasRate"
"oilRate" "LiquidRate"
"condensateRate" "LiquidRate"
"gasRate" "GasRate"
"waterRate" "LiquidRate"
"gasLiftRateAlloc" "GasRate"
"oilRateAlloc" "LiquidRate"
"condensateRateAlloc" "LiquidRate"
"gasRateAlloc" "GasRate"
"waterRateAlloc" "LiquidRate"
"wellName" "String"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# ActivityLog

Property Data type
"name" "String"
"group" "String"
"method" "ActivityMethod"
"location" "String"
"runLocale" "RunLocation"
"toolName" "String"
"toolVersion" "String"
"message" "String"
"hasError" "Boolean"
"errorName" "String"
"errorMessage" "String"
"startTime" "DateTime"
"endTime" "DateTime"
"duration" "Double"
"dataTypes" "HashSet`1"
"numDocsCreated" "Int32"
"numDocsModified" "Int32"
"numDocsDeleted" "Int32"
"logInfo" "String"
"logError" "String"
"meta" "Dictionary`2"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"

# UnitsDefinition

Property Data type
"Angle" "String"
"AngleUnit" "AngleUnit"
"Area" "String"
"AreaUnit" "AreaUnit"
"AreaDensity" "String"
"AreaDensityUnit" "AreaDensityUnit"
"Density" "String"
"DensityUnit" "DensityUnit"
"Duration" "String"
"DurationUnit" "DurationUnit"
"Volume" "String"
"VolumeUnit" "VolumeUnit"
"VolumeFlow" "String"
"VolumeFlowUnit" "VolumeFlowUnit"
"Mass" "String"
"MassUnit" "MassUnit"
"Length" "String"
"LengthUnit" "LengthUnit"
"Pressure" "String"
"PressureUnit" "PressureUnit"
"Force" "String"
"ForceUnit" "ForceUnit"
"Temperature" "String"
"TemperatureUnit" "TemperatureUnit"
"Torque" "String"
"TorqueUnit" "TorqueUnit"
"RotationalSpeed" "String"
"RotationalSpeedUnit" "RotationalSpeedUnit"
"Speed" "String"
"SpeedUnit" "SpeedUnit"
"Ratio" "String"
"RatioUnit" "RatioUnit"
"GasRate" "String"
"GasRateUnit" "GasRateUnit"
"GasVolume" "String"
"GasVolumeUnit" "GasVolumeUnit"
"LiquidRate" "String"
"LiquidRateUnit" "LiquidRateUnit"
"LiquidVolume" "String"
"LiquidVolumeUnit" "LiquidVolumeUnit"
"BoeRate" "String"
"BoeRateUnit" "BoeRateUnit"
"BoeVolume" "String"
"BoeVolumeUnit" "BoeVolumeUnit"
"name" "String"
"id" "String"
"createdAt" "DateTime"
"createdBy" "String"
"updatedAt" "DateTime"
"updatedBy" "String"
"deletedBy" "String"
"deletedAt" "DateTime"
"schemaVersion" "String"
"InSync" "Boolean"
"createdActivityId" "String"
"lastUpdatedActivityId" "String"
"deletedActivityId" "String"
"deletedTimestamp" "Int64"
"modifiedTimestamp" "Int64"
"dirtyTimestamp" "Int64"
"canBeDisposed" "Boolean"
"extra" "Dictionary`2"
"ExtraElements" "IDictionary`2"