swagger: '2.0' info: version: v2.222.1 title: Corva API description: 'The Corva API is a powerful interface providing great flexibility and extensibility with Corva. Whether your needs are simple UI visualizations, data entry, replication/sync tasks, real-time stream processing, or complex machine learning CPU-intensive apps, the Corva API is the way to make it happen. Our concepts are split into three distinct silos: data apps, visualization apps, and a REST API' termsOfService: https://www.corva.ai/terms-and-conditions/ contact: name: Corva API Team email: support@corva.ai securityDefinitions: api_key: type: apiKey name: authorization in: header security: - api_key: [] tags: - name: Users description: User, API key, and session management - name: Assets description: 'Manage company assets: Programs, Pads, Rigs, Wells, Frac Fleets, and Wirelines' - name: Data description: Manage company data for all data collections - name: Dashboards description: Manage your dashboards, which contain one or more visualization apps - name: DashboardAppAnnotations description: Manage annotations to applications on user dashboards - name: Feed description: Manage Feed - name: Alerts description: Manage Alerts - name: AlertWorkflows description: Alert status workflow definitions (global and company-specific) - name: AlertGroups description: Alert group management - team-scoped alert configurations - name: AlertDefinitions description: Alert definition management (V2) - name: Notifications description: Manage Notifications - name: Tasks description: Trigger and check status for background tasks - name: TaskSchedules description: Create and manage cron-based task schedules - name: Files description: Manage file uploads and downloads - name: Security description: Manage security policies, permissions, and groups - name: AuthenticationPlatforms description: Read authentication platforms (broker tenants) used for SSO. Read-only; managed in ActiveAdmin. - name: Picklists description: Manage picklists, which are lists of options (usually key/value pairs) - name: WellView description: WellView 3rd-Party integration - name: MessageProducer description: Message Producer for apps - name: Apps description: Manage Apps - name: AppReviews description: Manage AppsReviews - name: AppDatasets description: Manage App Datasets - name: AbilityCheck description: Check abilities for user - name: Well Plans description: Manage well plans - name: Well Plan Tabs description: Manage well plan tabs - name: Well Plan Checklists description: Manage well plan checklists - name: Tool Ordering description: Customer tool order create/edit/submit and the specification definition registry consumes: - application/json produces: - application/json paths: v2/ability_check/check_feature: get: summary: Check feature status for user tags: - AbilityCheck responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/FeatureStatus' parameters: - in: query name: feature_name description: Name of Feature required: true type: string v2/ability_check/check_permission: get: summary: Check permission status for user tags: - AbilityCheck responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/PermissionStatus' parameters: - in: query name: ability description: Ability to check required: true type: string - in: query name: resource_class description: Class of resource required: true type: string - in: query name: resource_id description: Id of resource if checking permission for particular entity required: false type: integer - in: query name: name description: Dataset name required: false type: integer - in: query name: provider description: Dataset provider required: false type: integer /v2/activities: get: summary: List activities tags: - Feed responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List activities schema: type: array items: $ref: '#/definitions/ActivitiesList' parameters: - in: query name: segment description: Segments could be nil, a comma-delimited list of strings, or an array items: type: string - in: query name: type description: List of asset types items: type: string - in: query name: rigs description: Ids of rigs to search for items: type: integer - in: query name: assets description: Ids of assets to search for items: type: integer - in: query name: users description: Ids of users to search for items: type: integer - in: query name: apps description: Ids of apps to search for items: type: integer - in: query name: is_recommendation description: Search geosteering_comments based on isRecommendation field type: boolean - in: query name: start description: Search by start time as a Unix timestamp type: integer format: timestamp - in: query name: end description: Search by end time as a Unix timestamp type: integer format: timestamp - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer post: summary: Create an activity tags: - Feed responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created activity schema: $ref: '#/definitions/ActivitySingle' parameters: - in: body name: activity description: Activity Payload required: true type: object schema: $ref: '#/definitions/ActivityPayload' /v2/activities/{id}: get: summary: Show activity tags: - Feed responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/ActivitySingle' parameters: - in: path name: id description: Activity ID required: true type: integer format: int64 patch: summary: Update an activity tags: - Feed responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated activity schema: $ref: '#/definitions/ActivitySingle' parameters: - in: path name: id description: Activity ID required: true type: integer format: int64 - in: body name: activity description: Activity Payload required: true type: object schema: $ref: '#/definitions/ActivityPayload' delete: summary: Delete an activity tags: - Feed responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Activity deleted parameters: - in: path name: id description: Activity ID required: true type: integer /v2/alerts/{alert_id}/activities: get: summary: List Alert Activities tags: - Alerts responses: '401': description: Unauthorized '403': description: Forbidden '404': description: Alert not found '200': description: Successful response schema: type: object properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: $ref: '#/definitions/AlertActivity' '400': description: Invalid activity filter parameters: - in: path name: alert_id description: Alert ID required: true type: integer format: int64 - in: query name: order description: 'Sort order by created_at (started_at is an alias): desc (default) or asc' type: string enum: - desc - asc - in: query name: activity description: Filter by activity type type: string enum: - status_change - classification - level_change - escalation - renotified - rearmed - in: query name: user_id description: Filter by user ID type: integer format: int64 - in: query name: page description: Page number type: integer - in: query name: per_page description: Items per page, default 25, max 100 type: integer /v1/alerts/{alert_id}/comments/: get: summary: List comments for alert tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: type: array items: $ref: '#/definitions/Comment' parameters: - in: path name: alert_id description: Alert ID required: true type: integer format: int64 post: summary: Create a comment for alert tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created alert comment schema: $ref: '#/definitions/Comment' parameters: - in: body name: comment description: Comment Payload required: true type: object schema: $ref: '#/definitions/CommentPayload' /v1/alerts/{alert_id}/comments/{id}: get: summary: Show comment for alert tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/Comment' parameters: - in: path name: alert_id description: Alert ID required: true type: integer format: int64 - in: path name: id description: Comment ID required: true type: integer format: int64 patch: summary: Update an alert comment tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated alert comment schema: $ref: '#/definitions/Comment' parameters: - in: path name: alert_id description: Alert ID required: true type: integer format: int64 - in: path name: id description: Comment ID required: true type: integer format: int64 - in: body name: comment description: Comment Payload required: true type: object schema: $ref: '#/definitions/CommentPayload' delete: summary: Delete an alert comment tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Alert comment deleted parameters: - in: path name: alert_id description: Alert ID required: true type: integer format: int64 - in: path name: id description: Comment ID required: true type: integer format: int64 /v1/alerts/{alert_id}/comments/{comment_id}/likes: get: summary: List likes for alert's comment tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: type: array items: $ref: '#/definitions/Like' parameters: - in: path name: alert_id description: Alert ID required: true type: integer format: int64 - in: path name: comment_id description: Comment ID required: true type: integer format: int64 /v1/alerts/{alert_id}/comments/{comment_id}/likes/toggle: post: summary: Toggle a like for alert's comment tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created/deleted alert like parameters: - in: path name: alert_id description: Alert ID required: true type: integer format: int64 - in: path name: comment_id description: Comment ID required: true type: integer format: int64 /v2/alerts/{alert_id}/comments: get: summary: List Alert Comments tags: - Alerts responses: '401': description: Unauthorized '403': description: Forbidden '404': description: Alert or corresponding activity not found '200': description: Successful response schema: type: object properties: data: type: array items: $ref: '#/definitions/CommentV2' parameters: - in: path name: alert_id description: Alert ID required: true type: integer format: int64 post: summary: Create Alert Comment tags: - Alerts responses: '401': description: Unauthorized '403': description: Forbidden '404': description: Alert or corresponding activity not found '200': description: Created alert comment schema: type: object properties: data: $ref: '#/definitions/CommentV2' '400': description: Missing comment payload '422': description: Validation error parameters: - in: path name: alert_id description: Alert ID required: true type: integer format: int64 - in: body name: comment description: Comment Payload required: true type: object schema: $ref: '#/definitions/CommentPayload' /v1/alerts/{alert_id}/likes: get: summary: List likes for alert tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: type: array items: $ref: '#/definitions/Like' parameters: - in: path name: alert_id description: Alert ID required: true type: integer format: int64 /v1/alerts/{alert_id}/likes/toggle: post: summary: Toggle a like for alert tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created/deleted alert like parameters: - in: path name: alert_id description: Alert ID required: true type: integer format: int64 /v1/alerts/definitions: get: summary: List Alert Definitions tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: type: array items: $ref: '#/definitions/AlertDefinition' parameters: - in: query name: segment description: Segments could be nil, a comma-delimited list of strings, or an array items: type: string enum: - drilling - completion - intervention - in: query name: template_type type: string description: 'Filter by template type: standard or preset' - in: query name: topic type: string description: Filter by topic /v1/alerts/definitions/context: get: summary: Gather Alert Definition Context tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/ContextResponse' parameters: - in: query name: asset_id description: Asset to gather context from - in: query name: identifier description: Alert definition identifier to check against /v1/alerts/definitions/trigger: post: summary: Trigger Alert tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/TriggerResponse' parameters: - in: body name: asset_id description: Asset to trigger the alert for - in: body name: identifier description: Alert definition identifier to check against and trigger - in: body name: timestamp description: Timestamp to trigger the alert at. Defaults to the current time. /v1/alerts/definitions/close: post: summary: Close Open Alerts tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: status: OK parameters: - in: body name: asset_id description: Asset with a potentially open alert - in: body name: identifier description: Alert definition identifier to check against and close - in: body name: timestamp description: Timestamp to close the alert at. Defaults to the current time. /v1/alerts/definitions/{alert_definition_id}/check: post: summary: Check Alert Definition in point of time tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: status: OK $ref: '#/definitions/CheckResponse' parameters: - in: path name: alert_definition_id description: Alert definition to check - in: body name: asset_id description: Asset to check on - in: body name: timestamp description: Timestamp /v1/alerts/definitions/templates/{template_type}: get: summary: List Alert Definition Templates tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: array description: Successful response - returns templates or their overrides schema: type: array items: $ref: '#/definitions/AlertDefinition' '400': description: Invalid template_type or scope parameter parameters: - in: path name: template_type type: string required: true description: 'Template type: standard or preset' - in: query name: scope type: string required: false description: Library shelf to list. "corva" (default) lists Corva-owned templates, swapping in the caller's copy where one exists. "company" lists templates owned by the current company. "user" lists the current user's personal templates. enum: - corva - company - user /v1/alerts/definitions/{id}/save_as_template: post: summary: Save Alert Definition as Library Template tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Caller is not allowed to create templates on the target shelf '404': description: Alert definition not found '200': description: The created template schema: $ref: '#/definitions/AlertDefinition' '400': description: Invalid template_type or scope parameter parameters: - in: path name: id type: integer format: int64 required: true description: Source alert definition id - in: query name: template_type type: string required: true description: 'Template type: standard or preset' - in: query name: scope type: string required: false description: Target library shelf. "company" (default) saves a company-owned template, "user" saves a personal template for the current user, "corva" saves to the Corva library (Corva principals only). The source definition is unaffected. enum: - corva - company - user /v1/alerts/definitions/{alert_definition_id}/enable: post: summary: Enable Alert Definition Template tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: User is not authorized to update the given alert group '404': description: Alert definition not found, belongs to another company, or alert group not found '200': type: array description: Successful response - returns enabled alerts (new copy or existing overrides) schema: items: $ref: '#/definitions/AlertDefinition' '400': description: Enabled alert is not valid for the given alert group parameters: - in: path name: alert_definition_id type: integer required: true description: Template alert definition ID to enable - in: query name: alert_group_id type: integer required: false description: Optional alert group to associate the enabled alert with /v1/alerts/definitions/{alert_definition_id}/disable: post: summary: Disable Alert Definition Template tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Alert definition not found or belongs to another company '200': type: object description: Successful response - returns disabled alert override schema: $ref: '#/definitions/AlertDefinition' '400': description: No enabled alert definition found for this template parameters: - in: path name: alert_definition_id type: integer required: true description: Template alert definition ID to disable /v2/alerts/definitions: get: summary: List Alert Definitions tags: - AlertDefinitions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List of alert definitions schema: $ref: '#/definitions/AlertDefinitionV2List' parameters: - in: query name: type description: Filter by type (personal/company) type: string required: false - in: query name: alert_group_id description: 'Filter by alert group: a single id, a comma-separated list of ids, or "none" for ungrouped definitions' type: string required: false - in: query name: search description: Search by name type: string required: false - in: query name: segment description: 'Filter by segment: a single key or a comma-separated list (e.g. "drilling,completion"). Matches definitions whose segment array overlaps the given values.' type: string required: false - in: query name: alert_tag_ids description: 'Filter by alert tag: a single value or a comma-separated list of tag ids and/or names (numeric values are treated as ids, names match case-insensitively). Matches definitions tagged with any of the given tags.' type: string required: false - in: query name: mine description: When true, returns only company definitions and the caller's own personal definitions. Off by default. type: boolean required: false - in: query name: exclude_templates description: When true, excludes every library template (preset and standard). Off by default. type: boolean required: false - in: query name: exclude_preset_templates description: When true, excludes Corva preset templates but keeps company standard templates. Off by default. type: boolean required: false - in: query name: active description: When true, returns only active definitions. Off by default. type: boolean required: false - in: query name: page description: Page number type: integer required: false - in: query name: per_page description: Items per page type: integer required: false post: summary: Create Alert Definition tags: - AlertDefinitions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created alert definition schema: $ref: '#/definitions/AlertDefinitionV2Single' parameters: - in: body name: body required: true schema: $ref: '#/definitions/AlertDefinitionV2Payload' /v2/alerts/definitions/templates/{template_type}: get: summary: List Alert Definition Templates tags: - AlertDefinitions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List of alert definition templates schema: $ref: '#/definitions/AlertDefinitionV2List' description: 'Returns the template catalog for the requested library shelf. Unlike the v1 endpoint, templates are returned as-is: enabled templates are not replaced by the company/user copies made from them.' parameters: - in: path name: template_type required: true type: string description: Template type (standard/preset) - in: query name: scope required: false type: string description: 'Library shelf: corva (default), company, or user' - in: query name: search description: Search by name type: string required: false - in: query name: segment description: 'Filter by segment: a single key or a comma-separated list (e.g. "drilling,completion"). Matches templates whose segment array overlaps the given values.' type: string required: false - in: query name: alert_tag_ids description: 'Filter by alert tag: a single value or a comma-separated list of tag ids and/or names (numeric values are treated as ids, names match case-insensitively). Matches templates tagged with any of the given tags.' type: string required: false - in: query name: page description: Page number type: integer required: false - in: query name: per_page description: Items per page type: integer required: false /v2/alerts/definitions/{id}: get: summary: Get Alert Definition tags: - AlertDefinitions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Alert definition not found or not readable '200': description: Alert definition details schema: $ref: '#/definitions/AlertDefinitionV2Single' description: Corva catalog templates are readable by any company, matching the templates index; any other definition must be readable by the caller, otherwise 404. parameters: - in: path name: id required: true type: integer format: int64 patch: summary: Update Alert Definition tags: - AlertDefinitions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Not authorized to edit this definition or template, including a type change that would put the definition outside your permissions '404': description: Definition not found or not visible to the caller '200': description: Updated alert definition schema: $ref: '#/definitions/AlertDefinitionV2Single' description: 'Also edits library templates: Company Library templates per the company alert-definition update permission, My Library templates only by their owning user (403 otherwise). Corva preset templates sit outside a company ability scope, so company users get 404; Corva admins can edit them. Editing a template never changes the copies already made from it.' parameters: - in: path name: id required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/AlertDefinitionV2Payload' delete: summary: Delete Alert Definition tags: - AlertDefinitions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Deleted parameters: - in: path name: id required: true type: integer format: int64 /v2/alerts/definitions/{id}/copy: post: summary: Copy Alert Definition tags: - AlertDefinitions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: The copied alert definition schema: $ref: '#/definitions/AlertDefinitionV2Single' description: Creates a copy of the alert definition (with its filters, constraints, levels and dashboard) in the current company. When called with a user session the copy becomes a personal definition owned by that user. parameters: - in: path name: id required: true type: integer format: int64 /v2/alerts/definitions/{id}/apply: post: summary: Apply Library Template To Alert Group tags: - AlertDefinitions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: The alert definition placed in the group schema: $ref: '#/definitions/AlertDefinitionV2Single' '400': description: Missing alert_group_id, unknown mode, or the source is not a library template '409': description: The group already holds a copy of this template, or holds several and replace is ambiguous description: Copies a library template into an alert group and activates the copy, stamping template_id on it. The source must be a template on one of the three shelves. Returns the resulting alert definition. parameters: - in: path name: id required: true type: integer format: int64 - in: body name: body required: true schema: required: - alert_group_id properties: alert_group_id: type: integer format: int64 description: Alert group to place the copy in mode: type: string enum: - add - replace - duplicate description: add (default) places one copy and conflicts if the group already holds one; replace overwrites the existing copy in place, keeping its subscriptions and history; duplicate always adds another copy /v2/alerts/definitions/{id}/refresh: post: summary: Refresh Alert Definition From Library tags: - AlertDefinitions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: The refreshed alert definition schema: $ref: '#/definitions/AlertDefinitionV2Single' '400': description: The alert definition was not created from a library template description: 'Re-pulls the source library template into this copy. A full overwrite: every configuration value, including filters, constraints and levels, comes from the template, and customizations on the copy are replaced rather than merged. The copy keeps its id, company, user, alert group, template link, active state and subscriptions. Not gated on version.' parameters: - in: path name: id required: true type: integer format: int64 /v2/alerts/definitions/{id}/refresh_preview: get: summary: Preview A Library Refresh tags: - AlertDefinitions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Definition not found, or its template is not visible to the caller '200': description: The changes a refresh would apply schema: properties: attributes: type: object description: Changed columns, each as {from, to} filters: type: object properties: added: type: array items: type: object removed: type: array items: type: object changed: type: array items: type: object tags: type: object properties: added: type: array items: type: object removed: type: array items: type: object '400': description: The alert definition was not created from a library template description: 'Reports the changes a refresh would apply to this copy, without applying them. Mirrors the refresh rules exactly: preserved attributes never appear, a template with no filters reports no filter changes, and tags are reported after the cross-company name resolution a refresh would perform. Filters are matched on data_point; a data_point used more than once on either side is reported as a removal plus an addition rather than a change. version is omitted as bookkeeping.' parameters: - in: path name: id required: true type: integer format: int64 /v2/alerts/definitions/{id}/subscribe: post: summary: Subscribe to Alert Definition tags: - AlertDefinitions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Subscription created; activates an inactive definition '409': description: Subscription already exists parameters: - in: path name: id required: true type: integer format: int64 - in: body name: body required: false schema: properties: alert_notification_types: type: array description: Notification type identifiers to subscribe to; all (except banner) when omitted items: type: string assets: type: array description: Asset scoping for the subscription items: type: object /v2/alerts/definitions/{id}/unsubscribe: post: summary: Unsubscribe from Alert Definition tags: - AlertDefinitions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Unsubscribed; deactivates a personal definition left without subscriptions parameters: - in: path name: id required: true type: integer format: int64 /v2/alert_groups/{alert_group_id}/alert_definitions: get: summary: List an Alert Group's Definitions tags: - AlertDefinitions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: The alert group's definitions (same payload as /v2/alerts/definitions?alert_group_id=:id) schema: $ref: '#/definitions/AlertDefinitionV2List' parameters: - in: path name: alert_group_id description: Alert group ID required: true type: integer format: int64 - in: query name: type description: Filter by type (personal/company) type: string required: false - in: query name: search description: Search by name type: string required: false - in: query name: alert_tag_ids description: 'Filter by alert tag: a single value or a comma-separated list of tag ids and/or names (numeric values are treated as ids, names match case-insensitively). Matches definitions tagged with any of the given tags.' type: string required: false - in: query name: page description: Page number type: integer required: false - in: query name: per_page description: Items per page type: integer required: false post: summary: Assign an Alert Definition to a Group tags: - AlertDefinitions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Unknown or unreadable alert definition '200': description: Definition assigned; a definition already in another group is moved schema: $ref: '#/definitions/AlertDefinitionV2Single' '400': description: Validation error, e.g. a different company or a segment the group does not carry parameters: - in: path name: alert_group_id description: Alert group ID required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/AlertGroupAlertDefinitionPayload' /v2/alert_groups/{alert_group_id}/alert_definitions/{id}: delete: summary: Unassign an Alert Definition from a Group tags: - AlertDefinitions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Definition unassigned from the group; the definition itself is kept schema: $ref: '#/definitions/AlertGroupAlertDefinitionUnassignResult' parameters: - in: path name: alert_group_id description: Alert group ID required: true type: integer format: int64 - in: path name: id description: Alert definition ID required: true type: integer format: int64 /v2/alert_groups/{alert_group_id}/alert_definitions/bulk_create: post: summary: Bulk Assign Alert Definitions to a Group tags: - AlertDefinitions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: One or more ids are unknown or unreadable; no definitions were assigned '200': description: Definitions assigned (idempotent — definitions already in the group are skipped) schema: $ref: '#/definitions/AlertDefinitionV2List' '400': description: Validation error; no definitions were assigned parameters: - in: path name: alert_group_id description: Alert group ID required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/AlertGroupAlertDefinitionBulkPayload' /v2/alert_groups/{alert_group_id}/alert_definitions/bulk_destroy: delete: summary: Bulk Unassign Alert Definitions from a Group tags: - AlertDefinitions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Definitions unassigned; ids that are not in the group are ignored schema: $ref: '#/definitions/AlertGroupAlertDefinitionUnassignResult' parameters: - in: path name: alert_group_id description: Alert group ID required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/AlertGroupAlertDefinitionBulkPayload' /v2/alert_groups/{alert_group_id}/alert_definitions/bulk_replace: put: summary: Replace an Alert Group's Definitions tags: - AlertDefinitions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: One or more ids are unknown or unreadable; no changes were made '200': description: 'Definition set replaced with the payload: definitions not in the payload are unassigned, new ones assigned, definitions already in the group are kept unchanged. An explicit empty ids array unassigns every definition' schema: $ref: '#/definitions/AlertDefinitionV2List' '400': description: Missing ids key or validation error; no changes were made parameters: - in: path name: alert_group_id description: Alert group ID required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/AlertGroupAlertDefinitionBulkPayload' /v2/alert_groups: get: summary: List Alert Groups tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List of alert groups schema: $ref: '#/definitions/AlertGroupList' parameters: - in: query name: search description: Search by name type: string required: false - in: query name: page description: Page number type: integer required: false - in: query name: per_page description: Items per page type: integer required: false post: summary: Create Alert Group tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created alert group schema: $ref: '#/definitions/AlertGroupSingle' parameters: - in: body name: body required: true schema: $ref: '#/definitions/AlertGroupPayload' /v2/alert_groups/{id}: get: summary: Get Alert Group tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Alert group details schema: $ref: '#/definitions/AlertGroupSingle' parameters: - in: path name: id required: true type: integer format: int64 patch: summary: Update Alert Group tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated alert group schema: $ref: '#/definitions/AlertGroupSingle' '400': description: Validation error, including changing segment while the group has scopes or configuration overrides whose type is invalid for the new segment parameters: - in: path name: id required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/AlertGroupPayload' delete: summary: Delete Alert Group tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Deleted parameters: - in: path name: id required: true type: integer format: int64 /v2/alert_groups/{id}/merge: post: summary: Merge Alert Group tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Not authorized to update the target or destroy the source '404': description: Either group is not visible to the caller '200': description: Merged alert group schema: $ref: '#/definitions/AlertGroupSingle' '400': description: Missing source_alert_group_id, merging a group into itself, or groups that differ in company or segment description: Merges the source group into the group named in the path, which survives. Members, scopes, alert definitions and configurations are unioned; wherever both groups hold the same member, scope target or configuration key, the target group's row is kept and the source's is dropped. The target keeps its own name, workflow and settings. Notification policies scoped to the source follow it to the target. The whole merge is one transaction and cannot be undone. parameters: - in: path name: id required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/AlertGroupMergePayload' /v2/alert_groups/{alert_group_id}/alert_group_users: get: summary: List Group Members tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List of group members; each member embeds its user record (UserMinimalSerializer) in the response `included` array schema: $ref: '#/definitions/AlertGroupUserList' parameters: - in: path name: alert_group_id required: true type: integer format: int64 post: summary: Add Member to Group tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Added member schema: $ref: '#/definitions/AlertGroupUserSingle' parameters: - in: path name: alert_group_id required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/AlertGroupUserPayload' /v2/alert_groups/{alert_group_id}/alert_group_users/{id}: delete: summary: Remove Member from Group tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Removed parameters: - in: path name: alert_group_id required: true type: integer format: int64 - in: path name: id required: true type: integer format: int64 /v2/alert_groups/{alert_group_id}/alert_group_scopes: get: summary: List Group Scopes tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List of group scope targets schema: $ref: '#/definitions/AlertGroupScopeList' parameters: - in: path name: alert_group_id required: true type: integer format: int64 post: summary: Add Scope Target to Group tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Added scope target schema: $ref: '#/definitions/AlertGroupScopeSingle' parameters: - in: path name: alert_group_id required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/AlertGroupScopePayload' /v2/alert_groups/{alert_group_id}/alert_group_scopes/{id}: delete: summary: Remove Scope Target from Group tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Removed parameters: - in: path name: alert_group_id required: true type: integer format: int64 - in: path name: id required: true type: integer format: int64 /v2/alert_groups/{alert_group_id}/alert_group_configurations: get: summary: List Group Configurations tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List of configurations schema: $ref: '#/definitions/AlertGroupConfigurationList' parameters: - in: path name: alert_group_id required: true type: integer format: int64 post: summary: Create Group Configuration tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created configuration schema: $ref: '#/definitions/AlertGroupConfigurationSingle' parameters: - in: path name: alert_group_id required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/AlertGroupConfigurationPayload' /v2/alert_groups/{alert_group_id}/alert_group_configurations/{id}: patch: summary: Update Group Configuration tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated configuration schema: $ref: '#/definitions/AlertGroupConfigurationSingle' '400': description: Validation error, or scope_type/scope_id provided without the other — the pair must always be updated together parameters: - in: path name: alert_group_id required: true type: integer format: int64 - in: path name: id required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/AlertGroupConfigurationPayload' delete: summary: Delete Group Configuration tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Deleted parameters: - in: path name: alert_group_id required: true type: integer format: int64 - in: path name: id required: true type: integer format: int64 /v2/alert_groups/{alert_group_id}/alert_group_users/bulk_create: post: summary: Bulk Add Members to Group tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Members added (idempotent — an existing member keeps its row, role updated when the payload sets alert_role_id) schema: $ref: '#/definitions/AlertGroupUserList' '400': description: Validation error; no members were added parameters: - in: path name: alert_group_id required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/AlertGroupUserBulkPayload' /v2/alert_groups/{alert_group_id}/alert_group_users/bulk_destroy: delete: summary: Bulk Remove Members from Group tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Members removed schema: $ref: '#/definitions/BulkDeleteResult' parameters: - in: path name: alert_group_id required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/AlertGroupUserBulkPayload' /v2/alert_groups/{alert_group_id}/alert_group_scopes/bulk_create: post: summary: Bulk Add Scope Targets to Group tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Scope targets added (idempotent — targets already in the group are skipped) schema: $ref: '#/definitions/AlertGroupScopeList' '400': description: Validation error; no scope targets were added parameters: - in: path name: alert_group_id required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/AlertGroupScopeBulkPayload' /v2/alert_groups/{alert_group_id}/alert_group_scopes/bulk_destroy: delete: summary: Bulk Remove Scope Targets from Group tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Scope targets removed schema: $ref: '#/definitions/BulkDeleteResult' parameters: - in: path name: alert_group_id required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/AlertGroupScopeBulkPayload' /v2/alert_groups/{alert_group_id}/alert_group_scopes/bulk_replace: put: summary: Replace Group Scope Targets tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: 'Scope set replaced with the payload: targets not in the payload are removed, new ones added, targets already in the group are kept unchanged. An explicit empty scopes array removes all scope targets' schema: $ref: '#/definitions/AlertGroupScopeList' '400': description: Missing scopes key or validation error; no changes were made parameters: - in: path name: alert_group_id required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/AlertGroupScopeBulkPayload' /v2/alert_groups/{alert_group_id}/alert_group_configurations/bulk_create: post: summary: Bulk Create Group Configurations tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Configurations created (all-or-nothing — none created if any is invalid) schema: $ref: '#/definitions/AlertGroupConfigurationList' '400': description: Validation error; no configurations were created parameters: - in: path name: alert_group_id required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/AlertGroupConfigurationBulkCreatePayload' /v2/alert_groups/{alert_group_id}/alert_group_configurations/bulk_destroy: delete: summary: Bulk Delete Group Configurations tags: - AlertGroups responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Configurations removed schema: $ref: '#/definitions/BulkDeleteResult' parameters: - in: path name: alert_group_id required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/AlertGroupConfigurationBulkDestroyPayload' /v2/alerts/metrics: get: summary: Alert Occurrence Metrics tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response schema: type: object properties: total_occurrences: type: integer description: Occurrence rows in the window levels: type: object description: Per-fire level => occurrence count; sums to total_occurrences. Occurrences with no level anywhere are keyed UNKNOWN alert_definitions: type: array items: type: object properties: alert_definition_id: type: integer format: int64 alert_definition_name: type: string count: type: integer description: Occurrence rows in the window for this definition '400': description: Invalid timestamp, range, or top parameters: - in: query name: last_alert_start description: Occurrence window lower bound (ms); defaults to 7 days ago type: integer - in: query name: last_alert_end description: Occurrence window upper bound (ms); defaults to now type: integer - in: query name: top description: Number of top alert definitions to return; defaults to 10, max 50 type: integer - in: query name: levels description: Filter by per-fire level; comma-separated type: string - in: query name: alert_definition_id description: Filter by Alert Definition ID; comma-separated type: string - in: query name: name description: Filter by Alert Definition name type: string - in: query name: assets description: Filter by asset IDs; comma-separated type: string - in: query name: rigs description: Filter by rig (parent asset) IDs; comma-separated type: string - in: query name: interventions description: Filter by intervention unit IDs; comma-separated type: string - in: query name: segment description: Filter by segment; comma-separated type: string - in: query name: status description: Filter by Alert status; comma-separated type: string - in: query name: subscription description: Restrict to the caller's subscriptions type: boolean /v2/alerts/notifications/types: get: summary: List Alert Notification Types tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Notification types available for alert subscriptions, ordered by name; the internal broadcast type is excluded schema: $ref: '#/definitions/AlertNotificationTypeV2List' /v2/alert_abilities: get: summary: List Assignable Alert Abilities tags: - AlertRBAC description: Static, platform-defined catalog of every assignable alert ability with its resource class and a localized display name. Identical for every company; readable by any authenticated user. Used by the matrix UI to render the assignment grid. responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Ability catalog schema: $ref: '#/definitions/AlertAbilityCatalog' parameters: - in: query name: locale description: Display-name language; unknown/unsupported locales fall back to English type: string required: false /v2/companies/{company_id}/alert_roles: get: summary: List Alert Roles tags: - AlertRBAC description: Company-defined alert roles. Gated by `update Company` (company admins only). responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Caller is not a company admin '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List of alert roles schema: $ref: '#/definitions/AlertRoleList' parameters: - in: path name: company_id description: Company ID required: true type: integer format: int64 - in: query name: page description: Page number type: integer required: false - in: query name: per_page description: Items per page type: integer required: false post: summary: Create Alert Role tags: - AlertRBAC responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Caller is not a company admin '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created alert role schema: $ref: '#/definitions/AlertRoleSingle' '400': description: Validation error (e.g. blank or duplicate name) parameters: - in: path name: company_id description: Company ID required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/AlertRolePayload' /v2/companies/{company_id}/alert_roles/{id}: get: summary: Get Alert Role tags: - AlertRBAC responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Caller is not a company admin '404': description: Role not found in this company '200': description: Alert role details schema: $ref: '#/definitions/AlertRoleSingle' parameters: - in: path name: company_id description: Company ID required: true type: integer format: int64 - in: path name: id description: Alert role ID required: true type: integer format: int64 patch: summary: Update Alert Role tags: - AlertRBAC responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Caller is not a company admin '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated alert role schema: $ref: '#/definitions/AlertRoleSingle' '400': description: Validation error parameters: - in: path name: company_id description: Company ID required: true type: integer format: int64 - in: path name: id description: Alert role ID required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/AlertRolePayload' delete: summary: Delete Alert Role tags: - AlertRBAC description: Deletes the role. Rejected with 403 if any group membership still references it (detach members first). responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Caller is not a company admin, or the role is still assigned to members '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Deleted parameters: - in: path name: company_id description: Company ID required: true type: integer format: int64 - in: path name: id description: Alert role ID required: true type: integer format: int64 /v2/companies/{company_id}/alert_roles/{id}/abilities: put: summary: Replace Alert Role Abilities tags: - AlertRBAC description: Atomically replaces the full set of ability grants on the role. A single invalid entry rolls back the whole change and leaves the prior matrix intact. An explicit empty array clears every grant; a missing or malformed `abilities` key is rejected with 400. responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Caller is not a company admin '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Role with its updated abilities schema: $ref: '#/definitions/AlertRoleSingle' '400': description: Missing or malformed abilities payload, or an ability is not valid for its resource class; no change applied parameters: - in: path name: company_id description: Company ID required: true type: integer format: int64 - in: path name: id description: Alert role ID required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/AlertRoleAbilitiesPayload' /v2/companies/{company_id}/alert_rbac/enable: post: summary: Enable Alert RBAC tags: - AlertRBAC description: Turns on per-company alert RBAC enforcement. Rejected with 422 unless at least one alert role exists, so a company can never lock every alert action. responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Caller is not a company admin '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: RBAC enabled schema: $ref: '#/definitions/AlertRbacStatus' '422': description: No alert role exists yet parameters: - in: path name: company_id description: Company ID required: true type: integer format: int64 /v2/companies/{company_id}/alert_rbac/disable: post: summary: Disable Alert RBAC tags: - AlertRBAC description: Turns off enforcement. Always permitted (independent of RBAC state) so a company can never lock itself out. responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Caller is not a company admin '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: RBAC disabled schema: $ref: '#/definitions/AlertRbacStatus' parameters: - in: path name: company_id description: Company ID required: true type: integer format: int64 /v2/alerts/{alert_id}/occurrences: get: summary: List Alert Occurrences tags: - Alerts responses: '401': description: Unauthorized '403': description: Forbidden '404': description: Alert not found '200': description: Successful response schema: type: object properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: $ref: '#/definitions/AlertOccurrence' parameters: - in: path name: alert_id description: Alert ID required: true type: integer format: int64 - in: query name: sort description: 'Field to sort by: start_at (default) or severity' type: string enum: - start_at - severity - in: query name: order description: 'Sort direction: asc (default) or desc' type: string enum: - asc - desc - in: query name: page description: Page number (enables pagination) type: integer - in: query name: per_page description: Items per page, max 1000 (enables pagination) type: integer /v2/alerts/{alert_id}/occurrences/{id}/classify: post: summary: Classify an Alert Occurrence tags: - Alerts responses: '401': description: Unauthorized '403': description: Forbidden '404': description: Alert or occurrence not found '200': description: Successful response schema: type: object properties: data: type: object properties: id: type: string type: type: string attributes: $ref: '#/definitions/AlertOccurrence' '400': description: Missing payload or invalid classification description: Classifying the latest occurrence also classifies the alert; older occurrences are recorded on the occurrence only. parameters: - in: path name: alert_id description: Alert ID required: true type: integer format: int64 - in: path name: id description: Alert Occurrence ID required: true type: integer format: int64 - in: body name: alert_occurrence description: Classification payload; classified_by/classified_at are set to the current user and time required: true type: object schema: $ref: '#/definitions/AlertOccurrenceClassificationPayload' /v2/alerts/occurrences/series: get: summary: Alert Occurrence Time-Series tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response schema: type: object properties: interval: type: string enum: - hour - day - month timezone: type: string data: type: array items: type: object properties: bucket: type: string description: Local wall-clock bucket label groups: type: array items: type: object properties: alert_definition_id: type: integer format: int64 alert_definition_name: type: string level: type: string count: type: integer description: Occurrence rows in the bucket for this definition/level '400': description: Invalid timezone, timestamp, range, or interval parameters: - in: query name: last_alert_start description: Occurrence window lower bound (ms); defaults to 7 days ago type: integer - in: query name: last_alert_end description: Occurrence window upper bound (ms); defaults to now type: integer - in: query name: timezone description: IANA timezone for bucketing; defaults to UTC type: string - in: query name: interval description: Bucket size; auto-selected from the range if omitted type: string enum: - hour - day - month - in: query name: levels description: Filter by per-fire level; comma-separated type: string - in: query name: alert_definition_id description: Filter by Alert Definition ID; comma-separated type: string - in: query name: name description: Filter by Alert Definition name type: string - in: query name: assets description: Filter by asset IDs; comma-separated type: string - in: query name: rigs description: Filter by rig (parent asset) IDs; comma-separated type: string - in: query name: interventions description: Filter by intervention unit IDs; comma-separated type: string - in: query name: segment description: Filter by segment; comma-separated type: string - in: query name: status description: Filter by Alert status; comma-separated type: string - in: query name: subscription description: Restrict to the caller's subscriptions type: boolean /v1/alerts: get: summary: List Alerts tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: type: array items: $ref: '#/definitions/Alert' parameters: - in: query name: start description: Timestamp to start alert at type: integer - in: query name: end description: Timestamp to end alert at type: integer - in: query name: last_alert_start description: Timestamp (ms) lower bound for last_alert_at type: integer - in: query name: last_alert_end description: Timestamp (ms) upper bound for last_alert_at type: integer - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: created_after description: Timestamp for created after type: integer - in: query name: alert_definition_id description: Filter by Alert Definition ID type: integer - in: query name: status description: Filter by Alert status. Supports comma-separated values for multiple statuses (e.g. open,acknowledged) type: string - in: query name: name description: Alert Definition name type: string schema: type: string - in: query name: alert_classification description: Alert Classification, one of [unclassified, true_positive, false_positive, informational, threshold_reached] type: string schema: type: string - in: query name: acknowledged description: Acknowledge the alert, true or false type: boolean schema: $ref: '#/definitions/AlertAcknowledgementPayload' - in: query name: subscription description: Alert subscription, true or false type: boolean schema: type: boolean - in: query name: segment description: Segments could be nil, a comma-delimited list of strings, or an array items: type: string - in: query name: assets description: Assets could be a string or a comma-delimited list of strings items: type: string - in: query name: levels description: 'Filter by alert level: a single value or a comma-separated list' items: type: string - in: query name: level description: Alias for levels items: type: string - in: query name: sort description: Column to sort by, one of [alert_at, last_alert_at, created_at, status, status_changed_at, level, occurrences, acknowledged, validated, alert_classification, name]. Unrecognized values fall back to the default sort (alert_at descending). type: string enum: - alert_at - last_alert_at - created_at - status - status_changed_at - level - occurrences - acknowledged - validated - alert_classification - name required: false - in: query name: order description: Sort direction, asc or desc. Applies only when sort is provided and defaults to asc; without sort, results are returned alert_at descending. type: string enum: - asc - desc required: false - in: query name: serializer description: Select serializer to be used with the returned records type: string enum: - minimal required: false /v1/alerts/{id}: get: summary: Get Alert tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Alert not found '200': type: object description: Successful response schema: $ref: '#/definitions/Alert' parameters: - in: path name: id description: Alert ID required: true type: integer format: int64 /v1/alerts/{alert_id}/acknowledge: post: summary: Add acknowledgement to alert tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Alert with updated acknowledgement schema: $ref: '#/definitions/Alert' parameters: - in: path name: alert_id description: Alert ID required: true type: integer format: int64 - in: body name: acknowledged description: Acknowledge the alert, true or false required: true type: boolean schema: $ref: '#/definitions/AlertAcknowledgementPayload' /v1/alerts/acknowledge: post: summary: Bulk acknowledge multiple alerts tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: array description: List of alerts with updated acknowledgement schema: type: array items: $ref: '#/definitions/Alert' parameters: - in: body name: acknowledgement description: Acknowledge the alerts, true or false required: true type: object schema: $ref: '#/definitions/AlertBulkAcknowledgementPayload' /v1/alerts/{alert_id}/classify: post: summary: Add alert_classification to alert tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Alert with updated alert_classification schema: $ref: '#/definitions/Alert' parameters: - in: path name: alert_id description: Alert ID required: true type: integer format: int64 - in: body name: alert_classification description: Alert Classification, one of [unclassified, true_positive, false_positive, informational, threshold_reached] required: true type: string schema: $ref: '#/definitions/AlertClassificationPayload' /v1/alerts/{alert_id}/transition: post: summary: Transition alert status tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Unauthorized '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Alert with updated status and new activity entry schema: $ref: '#/definitions/Alert' '400': description: Invalid request (e.g. missing or blank status) parameters: - in: path name: alert_id description: Alert ID required: true type: integer format: int64 - in: body name: alert description: Target status and optional notes required: true type: object schema: $ref: '#/definitions/AlertTransitionPayload' /v1/alerts/{alert_id}/escalate: post: summary: Escalate alert to specific users tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Alert with new active escalation schema: $ref: '#/definitions/Alert' '422': description: Invalid request (empty user_ids, users outside company, or alert in terminal state) parameters: - in: path name: alert_id description: Alert ID required: true type: integer format: int64 - in: body name: escalation description: Escalation payload required: true type: object schema: $ref: '#/definitions/AlertEscalatePayload' /v1/alerts/{alert_id}/deescalate: post: summary: Close active escalation on alert tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Only the escalated user or an admin can de-escalate '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Alert with escalation closed schema: $ref: '#/definitions/Alert' '422': description: Alert is not escalated parameters: - in: path name: alert_id description: Alert ID required: true type: integer format: int64 /v1/alerts/totals: get: summary: Alerts Counts tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response schema: $ref: '#/definitions/AlertTotals' parameters: - in: query name: start description: Timestamp to start alert at type: integer - in: query name: end description: Timestamp to end alert at type: integer - in: query name: last_alert_start description: Timestamp (ms) lower bound for last_alert_at type: integer - in: query name: last_alert_end description: Timestamp (ms) upper bound for last_alert_at type: integer - in: query name: created_after description: Timestamp for created after type: integer - in: query name: top_alerts_count description: Number of Total Alerts, default is 5 type: integer - in: query name: alert_definition_id description: Filter by Alert Definition ID type: string - in: query name: name description: Alert Definition name type: string schema: type: string - in: query name: alert_classification description: Alert Classification, one of [unclassified, true_positive, false_positive, informational, threshold_reached] type: string schema: type: string - in: query name: acknowledged description: Acknowledge the alert, true or false type: boolean schema: $ref: '#/definitions/AlertAcknowledgementPayload' - in: query name: subscription description: Alert subscription, true or false type: boolean schema: type: boolean - in: query name: segment description: Segments could be nil, a comma-delimited list of strings, or an array items: type: string - in: query name: assets description: Assets could be a string or a comma-delimited list of strings items: type: string - in: query name: levels description: 'Filter by alert level: a single value or a comma-separated list' items: type: string - in: query name: level description: Alias for levels items: type: string /v1/alerts/details: get: summary: Alerts Details for given period of time tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: type: object properties: data: type: array items: type: object properties: alert_definition_id: type: integer alert_definition_name: type: string active: type: boolean segment: type: string subscription: type: boolean alert_id: type: integer level: type: string alert_at: type: string format: date-time asset_name: type: string parent_asset_id: type: integer parent_asset_name: type: string frac_fleet_id: type: integer frac_fleet_name: type: string intervention_unit_id: type: integer intervention_unit_name: type: string topic: type: string risk_value: type: number occurrences: type: integer description: Times the alert fired status: type: string description: Current workflow status example: data: - id: '111' type: alert_details attributes: alert_definition_id: 111 alert_definition_name: Info Alert active: true segments: drilling subscription: false alert_id: 123 level: INFO alert_at: '2023-01-01T12:00:00Z' asset_name: Asset name parent_asset_id: 123 parent_asset_name: Well Parent 1 frac_fleet_id: 123 frac_fleet_name: Frac Fleet 1 intervention_unit_id: 42 intervention_unit_name: Intervention unit name topic: predictive risk_value: 0.85 occurrences: 1 status: open - id: '222' type: alert_details attributes: alert_definition_id: 222 alert_definition_name: Warning Alert active: true segments: drilling subscription: true alert_id: 124 level: WARNING alert_at: '2023-01-01T11:30:00Z' asset_name: Asset name parent_asset_id: 125 parent_asset_name: Well Parent 2 frac_fleet_id: 135 frac_fleet_name: Frac Fleet 2 intervention_unit_id: 42 intervention_unit_name: Intervention unit name topic: null risk_value: null occurrences: 3 status: closed parameters: - in: query name: start description: Timestamp to start alert at type: integer - in: query name: end description: Timestamp to end alert at type: integer - in: query name: last_alert_start description: Timestamp (ms) lower bound for last_alert_at type: integer - in: query name: last_alert_end description: Timestamp (ms) upper bound for last_alert_at type: integer - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: created_after description: Timestamp for created after type: integer - in: query name: top_alerts_count description: Number of Total Alerts, default is 5 type: integer - in: query name: alert_definition_id description: Filter by Alert Definition ID type: string - in: query name: name description: Alert Definition name type: string schema: type: string - in: query name: alert_classification description: Alert Classification, one of [unclassified, true_positive, false_positive, informational, threshold_reached] type: string schema: type: string - in: query name: acknowledged description: Acknowledge the alert, true or false type: boolean schema: $ref: '#/definitions/AlertAcknowledgementPayload' - in: query name: subscription description: Alert subscription, true or false type: boolean schema: type: boolean - in: query name: segment description: Segments could be nil, a comma-delimited list of strings, or an array items: type: string - in: query name: assets description: Assets could be a string or a comma-delimited list of strings items: type: string - in: query name: levels description: 'Filter by alert level: a single value or a comma-separated list' items: type: string - in: query name: level description: Alias for levels items: type: string - in: query name: sort description: Column to sort by, one of [alert_at, last_alert_at, created_at, status, status_changed_at, level, occurrences, acknowledged, validated, alert_classification, name]. Unrecognized values fall back to the default sort (alert_at descending). type: string enum: - alert_at - last_alert_at - created_at - status - status_changed_at - level - occurrences - acknowledged - validated - alert_classification - name required: false - in: query name: order description: Sort direction, asc or desc. Applies only when sort is provided and defaults to asc; without sort, results are returned alert_at descending. type: string enum: - asc - desc required: false /v2/alerts: get: summary: List Alerts (V2) tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List of alerts schema: $ref: '#/definitions/AlertV2List' parameters: - in: query name: start description: Timestamp (ms) lower bound for alert_at type: integer required: false - in: query name: end description: Timestamp (ms) upper bound for alert_at type: integer required: false - in: query name: last_alert_start description: Timestamp (ms) lower bound for last_alert_at type: integer required: false - in: query name: last_alert_end description: Timestamp (ms) upper bound for last_alert_at type: integer required: false - in: query name: updated_at_start description: Timestamp (ms) lower bound for updated_at type: integer required: false - in: query name: updated_at_end description: Timestamp (ms) upper bound for updated_at type: integer required: false - in: query name: created_after description: Timestamp (ms) lower bound for created_at type: integer required: false - in: query name: alert_definition_id description: 'Filter by Alert Definition ID: a single id or a comma-separated list of ids' type: string required: false - in: query name: name description: 'Filter by Alert Definition name: a single value or a comma-separated list, matched case-insensitively as substrings' type: string required: false - in: query name: status description: 'Filter by Alert status: a single value or a comma-separated list (e.g. open,acknowledged)' type: string required: false - in: query name: alert_classification description: Filter by classification, one of [unclassified, true_positive, false_positive, informational, threshold_reached] type: string required: false - in: query name: acknowledged description: 'Filter by acknowledged flag: true or false; an empty value matches alerts where acknowledged is null' type: string required: false allowEmptyValue: true - in: query name: validation description: 'Validation filter: validated or unvalidated (users with the validate ability), valid or invalid otherwise' type: string required: false - in: query name: subscription description: When true, users with the validate ability see only alerts for their own subscriptions (always the case for other users) type: boolean required: false - in: query name: segment description: 'Filter by segment: a single key, a comma-separated list, or an array' type: string required: false - in: query name: levels description: 'Filter by alert level: a single value or a comma-separated list' type: string required: false - in: query name: level description: Alias for levels type: string required: false - in: query name: rigs description: 'Filter by rig: a comma-separated list of rig asset ids matching the well parent' type: string required: false - in: query name: assets description: 'Filter by asset: a comma-separated list or an array of asset ids, matching the alert asset, its parent or active child' type: string required: false - in: query name: interventions description: 'Filter by intervention unit: a comma-separated list of intervention unit ids' type: string required: false - in: query name: sort description: Column to sort by, one of [alert_at, last_alert_at, created_at, status, status_changed_at, level, occurrences, acknowledged, validated, alert_classification, name]. Unrecognized values fall back to the default sort (alert_at descending). type: string enum: - alert_at - last_alert_at - created_at - status - status_changed_at - level - occurrences - acknowledged - validated - alert_classification - name required: false - in: query name: order description: Sort direction, asc or desc. Applies only when sort is provided and defaults to asc; without sort, results are returned alert_at descending. type: string enum: - asc - desc required: false - in: query name: fields description: Sparse fieldset, e.g. fields=alert.status,alert.alert_at. Absent param returns all fields. type: string required: false - in: query name: page description: Page number type: integer required: false - in: query name: per_page description: Items per page type: integer required: false /v2/alerts/{id}/acknowledge: post: summary: Acknowledge Alert (V2) tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: The updated alert schema: $ref: '#/definitions/AlertV2Single' description: Sets or clears the acknowledged flag on an alert. When acknowledging, the alert status also transitions to acknowledged if the company's alert workflow allows that transition from the current status. parameters: - in: path name: id description: Alert ID type: integer required: true - in: body name: body required: true schema: properties: alert: type: object required: - acknowledged properties: acknowledged: type: boolean /v2/alerts/{id}: get: summary: Get Alert (V2) tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Not authorized to read the alert '404': description: Alert not found '200': description: Alert details. Unlike GET /v1/alerts/{id}, the payload does not embed the comments/likes feed; use GET /v2/alerts/{id}/comments for comment bodies and GET /v2/alerts/{id}/activities for the alert feed. The active escalation, when open, is embedded as `active_escalation`. schema: $ref: '#/definitions/AlertV2Single' parameters: - in: path name: id required: true type: integer format: int64 - in: query name: fields description: Sparse fieldset, e.g. fields=alert.status,alert.alert_at. Absent param returns all fields. type: string required: false delete: summary: Delete Alert (V2) tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Not allowed to delete the alert '404': description: Alert not found '200': description: Deleted parameters: - in: path name: id required: true type: integer format: int64 /v2/alerts/{id}/classify: post: summary: Classify Alert (V2) tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Unauthorized '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Alert with updated classification schema: $ref: '#/definitions/AlertV2' '400': description: Invalid or missing classification payload parameters: - in: path name: id description: Alert ID required: true type: integer format: int64 - in: body name: alert description: Classification payload; classified_by/classified_at are set to the current user and time required: true type: object schema: $ref: '#/definitions/AlertClassificationPayloadV2' /v2/alerts/{alert_id}/deescalate: post: summary: Close active escalation on alert (V2) tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Only the escalated user or an admin can de-escalate '404': description: Alert not found '200': description: Alert with escalation closed schema: $ref: '#/definitions/AlertV2' '422': description: Alert is not escalated parameters: - in: path name: alert_id description: Alert ID required: true type: integer format: int64 /v2/alerts/{id}/transition: post: summary: Transition Alert status (V2) tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Alert is escalated to another user, or the user lacks the ability required for the target status '404': description: Alert not found '200': description: The alert after the transition schema: $ref: '#/definitions/AlertV2Single' '400': description: Invalid or missing status parameters: - in: path name: id required: true type: integer format: int64 - in: body name: body required: true schema: properties: alert: type: object required: - status properties: status: type: string description: Target status. Terminal targets are resolved, closed, invalid; an alert already in a terminal status may only transition to open — other targets leave the status unchanged but acknowledge the alert. notes: type: string description: Notes attached to the status_change activity /v2/alerts/{id}/check: post: summary: Check Alert notification rules (V2) tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Check result; rule failures (including an unknown alert ID) return notify false with the reason, not an error status schema: $ref: '#/definitions/AlertCheckResultV2' parameters: - in: path name: id description: Alert ID required: true type: integer format: int64 - in: query name: start description: Timestamp (s) lower bound for alert_at type: integer required: false - in: query name: end description: Timestamp (s) upper bound for alert_at type: integer required: false - in: query name: created_after description: Timestamp (s) lower bound for created_at type: integer required: false - in: query name: name description: Alert Definition name filter, matched case-insensitively as a substring type: string required: false - in: query name: levels description: 'Alert level filter: a single value or a comma-separated list' type: string required: false - in: query name: level description: Alias for levels type: string required: false - in: query name: rigs description: 'Rig filter: a comma-separated list of rig asset ids matching the alert asset parent' type: string required: false - in: query name: assets description: 'Asset filter: a comma-separated list of asset ids matching the alert asset' type: string required: false - in: query name: validation description: 'Validation filter: validated or unvalidated (users with the validate ability), valid or invalid otherwise' type: string required: false - in: query name: subscription description: When true, users with the validate ability are also required to have a subscription (always the case for other users) type: boolean required: false /v2/alerts/{id}/escalate: post: summary: Escalate Alert (V2) tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: The user lacks the escalate ability on the alert group '404': description: Alert not found '200': description: Escalated alert with active_escalation details schema: $ref: '#/definitions/AlertV2Single' '422': description: No users given, users outside the alert company, or alert in a terminal status description: Escalates the alert to the given company users, replacing any open escalation. Notifies the escalated users and records an escalation activity. parameters: - in: path name: id required: true type: integer format: int64 - in: body name: body required: true schema: properties: escalation: type: object required: - user_ids properties: user_ids: type: array description: Ids of users in the alert company to escalate to items: type: integer format: int64 notes: type: string description: Optional notes stored on the escalation and its activity /v2/alerts/totals: get: summary: Alert Totals (V2) tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Alert totals grouped by alert level schema: $ref: '#/definitions/AlertTotalsV2' parameters: - in: query name: top_alerts_count description: Number of top alerts to return, default is 5 type: integer required: false - in: query name: start description: Timestamp (ms) lower bound for alert_at type: integer required: false - in: query name: end description: Timestamp (ms) upper bound for alert_at type: integer required: false - in: query name: last_alert_start description: Timestamp (ms) lower bound for last_alert_at type: integer required: false - in: query name: last_alert_end description: Timestamp (ms) upper bound for last_alert_at type: integer required: false - in: query name: updated_at_start description: Timestamp (ms) lower bound for updated_at type: integer required: false - in: query name: updated_at_end description: Timestamp (ms) upper bound for updated_at type: integer required: false - in: query name: created_after description: Timestamp (ms) lower bound for created_at type: integer required: false - in: query name: alert_definition_id description: 'Filter by Alert Definition ID: a single id or a comma-separated list of ids' type: string required: false - in: query name: name description: 'Filter by Alert Definition name: a single value or a comma-separated list, matched case-insensitively as substrings' type: string required: false - in: query name: status description: 'Filter by Alert status: a single value or a comma-separated list (e.g. open,acknowledged)' type: string required: false - in: query name: alert_classification description: Filter by classification, one of [unclassified, true_positive, false_positive, informational, threshold_reached] type: string required: false - in: query name: acknowledged description: 'Filter by acknowledged flag: true or false; an empty value matches alerts where acknowledged is null' type: string required: false allowEmptyValue: true - in: query name: validation description: 'Validation filter: validated or unvalidated (users with the validate ability), valid or invalid otherwise' type: string required: false - in: query name: subscription description: When true, users with the validate ability see only alerts for their own subscriptions (always the case for other users) type: boolean required: false - in: query name: segment description: 'Filter by segment: a single key, a comma-separated list, or an array' type: string required: false - in: query name: levels description: 'Filter by alert level: a single value or a comma-separated list' type: string required: false - in: query name: level description: Alias for levels type: string required: false - in: query name: rigs description: 'Filter by rig: a comma-separated list of rig asset ids matching the well parent' type: string required: false - in: query name: assets description: 'Filter by asset: a comma-separated list or an array of asset ids, matching the alert asset, its parent or active child' type: string required: false - in: query name: interventions description: 'Filter by intervention unit: a comma-separated list of intervention unit ids' type: string required: false /v2/alerts/details: get: summary: List Alert Details (V2) tags: - Alerts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List of alert details schema: $ref: '#/definitions/AlertDetailsV2List' description: Returns a flattened detail row per alert, aggregating definition, asset hierarchy, frac fleet and intervention unit data. Accepts the same filters as the alerts list. parameters: - in: query name: start description: Timestamp (ms) lower bound for alert_at type: integer required: false - in: query name: end description: Timestamp (ms) upper bound for alert_at type: integer required: false - in: query name: last_alert_start description: Timestamp (ms) lower bound for last_alert_at type: integer required: false - in: query name: last_alert_end description: Timestamp (ms) upper bound for last_alert_at type: integer required: false - in: query name: updated_at_start description: Timestamp (ms) lower bound for updated_at type: integer required: false - in: query name: updated_at_end description: Timestamp (ms) upper bound for updated_at type: integer required: false - in: query name: created_after description: Timestamp (ms) lower bound for created_at type: integer required: false - in: query name: alert_definition_id description: 'Filter by Alert Definition ID: a single id or a comma-separated list of ids' type: string required: false - in: query name: name description: 'Filter by Alert Definition name: a single value or a comma-separated list, matched case-insensitively as substrings' type: string required: false - in: query name: status description: 'Filter by Alert status: a single value or a comma-separated list (e.g. open,acknowledged)' type: string required: false - in: query name: alert_classification description: Filter by classification, one of [unclassified, true_positive, false_positive, informational, threshold_reached] type: string required: false - in: query name: acknowledged description: 'Filter by acknowledged flag: true or false; an empty value matches alerts where acknowledged is null' type: string required: false allowEmptyValue: true - in: query name: validation description: 'Validation filter: validated or unvalidated (users with the validate ability), valid or invalid otherwise' type: string required: false - in: query name: subscription description: When true, users with the validate ability see only alerts for their own subscriptions (always the case for other users) type: boolean required: false - in: query name: segment description: 'Filter by segment: a single key, a comma-separated list, or an array' type: string required: false - in: query name: levels description: 'Filter by alert level: a single value or a comma-separated list' type: string required: false - in: query name: level description: Alias for levels type: string required: false - in: query name: rigs description: 'Filter by rig: a comma-separated list of rig asset ids matching the well parent' type: string required: false - in: query name: assets description: 'Filter by asset: a comma-separated list or an array of asset ids, matching the alert asset, its parent or active child' type: string required: false - in: query name: interventions description: 'Filter by intervention unit: a comma-separated list of intervention unit ids' type: string required: false - in: query name: sort description: Column to sort by, one of [alert_at, last_alert_at, created_at, status, status_changed_at, level, occurrences, acknowledged, validated, alert_classification, name]. Unrecognized values fall back to the default sort (alert_at descending). type: string enum: - alert_at - last_alert_at - created_at - status - status_changed_at - level - occurrences - acknowledged - validated - alert_classification - name required: false - in: query name: order description: Sort direction, asc or desc. Applies only when sort is provided and defaults to asc; without sort, results are returned alert_at descending. type: string enum: - asc - desc required: false - in: query name: fields description: Sparse fieldset, e.g. fields=alert_details.level,alert_details.asset_name. Absent param returns all fields. type: string required: false - in: query name: page description: Page number type: integer required: false - in: query name: per_page description: Items per page type: integer required: false /v2/alert_tags: get: summary: List Alert Tags tags: - AlertTags responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List of alert tags for the current company schema: $ref: '#/definitions/AlertTagList' parameters: - in: query name: search description: Search by name type: string required: false - in: query name: page description: Page number type: integer required: false - in: query name: per_page description: Items per page type: integer required: false post: summary: Create Alert Tag tags: - AlertTags responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created alert tag schema: $ref: '#/definitions/AlertTagSingle' '400': description: Validation error, including a name already used in the company, a parent in another company, or a parent that is not a top-level tag parameters: - in: body name: body required: true schema: $ref: '#/definitions/AlertTagPayload' /v2/alert_tags/{id}: patch: summary: Update Alert Tag tags: - AlertTags responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated alert tag schema: $ref: '#/definitions/AlertTagSingle' '400': description: Validation error parameters: - in: path name: id required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/AlertTagPayload' delete: summary: Delete Alert Tag tags: - AlertTags responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Deleted. Child tags and definition taggings are removed as well parameters: - in: path name: id required: true type: integer format: int64 /v1/alert_workflows: get: summary: List Alert Workflows tags: - AlertWorkflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: array description: Returns global workflows and workflows belonging to the current company, optionally filtered by company_id schema: $ref: '#/definitions/AlertWorkflowList' parameters: - in: query name: company_id description: Filter by company ID (must be nil/current company or a company accessible to the user) type: integer format: int64 required: false /v1/alert_workflows/{id}: get: summary: Get Alert Workflow tags: - AlertWorkflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Workflow not found or not accessible by current company '200': type: object description: Successful response schema: $ref: '#/definitions/AlertWorkflow' parameters: - in: path name: id description: AlertWorkflow ID required: true type: integer format: int64 /v2/alert_workflows: get: summary: List Alert Workflows tags: - AlertWorkflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Returns global workflows and workflows belonging to the current company, optionally filtered by company_id schema: $ref: '#/definitions/AlertWorkflowV2List' parameters: - in: query name: company_id description: Filter by company ID (must be nil/current company or a company accessible to the user) type: integer format: int64 required: false - in: query name: page description: Page number type: integer required: false - in: query name: per_page description: Items per page type: integer required: false /v2/alert_workflows/{id}: get: summary: Get Alert Workflow tags: - AlertWorkflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Workflow not found or not accessible by current company '200': description: Successful response schema: $ref: '#/definitions/AlertWorkflowV2Single' parameters: - in: path name: id description: AlertWorkflow ID required: true type: integer format: int64 /v2/authentication_platforms: get: summary: List authentication platforms description: Returns every authentication platform (broker tenant) configured for this Corva instance. Open to any authenticated caller; `options` is scrubbed of secrets before the response leaves the API. Writes are not exposed here — platforms are managed in ActiveAdmin. tags: - AuthenticationPlatforms responses: '401': description: Missing or invalid authentication '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Authentication platforms schema: $ref: '#/definitions/AuthenticationPlatformV2List' /v2/authentication_platforms/{id}: get: summary: Show authentication platform description: Open to any authenticated caller; `options` is scrubbed of secrets before the response leaves the API. tags: - AuthenticationPlatforms responses: '401': description: Missing or invalid authentication '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found '200': description: Authentication platform schema: $ref: '#/definitions/AuthenticationPlatformV2Single' parameters: - in: path name: id type: integer required: true /v2/app_reviews: get: summary: List accesible App Reviews tags: - AppReviews responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppReviewList' parameters: - in: query name: status description: Filter by status items: type: string - in: query name: app_ids description: Filter by App Ids items: type: integer /v2/app_reviews/{id}/approve: post: summary: Approve App Review tags: - AppReviews responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppReview' parameters: - in: path name: id description: App Review ID required: true type: integer format: int64 /v2/app_reviews/{id}/decline: post: summary: Approve App Review tags: - AppReviews responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppReview' parameters: - in: path name: id description: App Review ID required: true type: integer format: int64 /v2/favorites: get: summary: List favorites tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List user favorites schema: properties: programs: properties: data: type: array items: $ref: '#/definitions/Program' rigs: properties: data: type: array items: $ref: '#/definitions/Rig' wells: properties: data: type: array items: $ref: '#/definitions/Well' pads: properties: data: type: array items: $ref: '#/definitions/Pad' frac_fleets: properties: data: type: array items: $ref: '#/definitions/FracFleet' drillout_units: properties: data: type: array items: $ref: '#/definitions/DrilloutUnit' wirelines: properties: data: type: array items: $ref: '#/definitions/Wireline' parameters: - in: query name: fields description: 'Filter response fields, example: fields=rig.name,rig.active_well,well.name' type: string description: Returns all of the favorites that are saved in a user's settings.favorites key. /v2/assets: get: summary: List assets tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List assets schema: type: array items: $ref: '#/definitions/Asset' parameters: - in: query name: types type: string enum: - program - rig - well description: List of asset types items: type: string - in: query name: status description: Search by asset status (wells only; status is null for other asset types) type: string enum: - active - idle - paused - complete - deleting - in: query name: visibility description: Search by asset visibility type: string enum: - visible - visible_to_admin - deleted - in: query name: ids description: List of asset IDs to filter by items: type: integer - in: query name: program description: Search by Program ID type: integer - in: query name: parent_asset_id description: Search by parent asset ID type: integer - in: query name: api_number description: Search by one API number or multiple API numbers using api_number[] or comma-separated values; dashes are ignored type: string - in: query name: search description: Search by asset ID, asset name, api_number or customer_well_id type: string - in: query name: start description: Search by start time as a Unix timestamp type: integer format: timestamp - in: query name: end description: Search by end time as a Unix timestamp type: integer format: timestamp - in: query name: long_start description: Search by lon_lat coordinate area type: float - in: query name: long_end description: Search by lon_lat coordinate area type: float - in: query name: lat_start description: Search by lon_lat coordinate area type: float - in: query name: lat_end description: Search by lon_lat coordinate area type: float - in: query name: company_id description: Search by Company ID type: integer - in: query name: api_number description: Search by one API number or multiple API numbers using api_number[] or comma-separated values; dashes are ignored type: string - in: query name: fields description: Respond with only the given list of fields, like asset.asset_type. See example response for fields. items: type: string - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: name,-last_active_at' type: string enum: - name - last_active_at - status - rig - program - well - company - well_end - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc - in: query name: range_filter_field description: Filtering datetime with start/end type: string - in: query name: active_before description: Return records where last_active_at is smaller than the given timestamp type: datetime - in: query name: active_after description: Return records where last_active_at is greater than or equal to the given timestamp type: datetime - in: query name: last_active_drilling_before description: Return records where last_drilling_at is smaller than the given timestamp type: datetime - in: query name: last_active_drilling_after description: Return records where last_drilling_at is greater than or equal to the given timestamp type: datetime - in: query name: include_rig_id description: Add rig_id to response(only works with Asset::Rig) type: boolean - in: query name: include_type_wells description: Add type wells to response(only works with Asset::Well) type: boolean - in: query name: include_intervention_units description: Add intervention units to response type: boolean - in: query name: polygon_coords description: Filter by assets within a polygon defined by an array of coordinate points. Minimum 3 points required. The polygon will be automatically closed. type: array schema: items: type: object properties: latitude: type: float description: Latitude coordinate of the polygon point longitude: type: float description: Longitude coordinate of the polygon point example: value: - latitude: 29.0 longitude: -96.0 - latitude: 31.0 longitude: -96.0 - latitude: 31.0 longitude: -94.0 - latitude: 29.0 longitude: -94.0 /v2/assets/{id}: get: summary: Get asset by ID tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Show asset schema: $ref: '#/definitions/Asset' parameters: - in: path name: id description: Asset ID type: integer - in: query name: fields description: Respond with only the given list of fields, like asset.asset_type items: type: string /v2/assets/{id}/settings: get: summary: Get asset settings tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Asset settings, merged with optional connection settings schema: $ref: '#/definitions/Asset' parameters: - in: path name: id description: Asset ID type: integer - in: query name: app_key description: App Key type: string - in: query name: segment description: Used with app_key type: string enum: - drilling - completion - intervention default: drilling - in: query name: source_type description: Used with app_key type: string enum: - drilling - drillout - frac - pumpdown - wireline default: drilling - in: query name: log_type description: Used with source_type and app_key type: string enum: - time - depth default: time - in: query name: app_connection_id description: App Connection ID type: integer - in: query name: app_stream_id description: App Stream ID, used with app_key type: integer /v2/assets/{id}/type_wells: get: summary: List type well assets tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Type well assets schema: $ref: '#/definitions/Asset' parameters: - in: path name: id description: Asset ID type: integer /v2/assets/{id}/type_well: post: summary: Create a new type_well tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Newly created type well object schema: $ref: '#/definitions/TypeWell' parameters: - in: path name: id description: Asset ID type: integer - in: body name: offset_well_id required: true type: integer description: Offset Well Id schema: type: integer example: offset_well_id: 56789 /v2/assets/{id}/type_wells/{type_well_id}: delete: summary: Delete type_well tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Delete type well object schema: $ref: '#/definitions/TypeWell' parameters: - in: path name: id description: Asset ID type: integer - in: path name: type_well_id required: true type: integer description: Type Well Id /v2/assets/{id}/reruns: get: summary: Return reruns for the asset tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Reruns schema: type: array items: $ref: '#/definitions/Rerun' parameters: - in: path name: id description: Asset ID type: integer /v2/assets/{id}/ancestor_ids: get: summary: Return the ancestor_ids for the asset tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Ancestors schema: $ref: '#/definitions/AncestorsResponse' parameters: - in: path name: id description: Asset ID type: integer /v2/assets/resolve: post: summary: Resolve old-style assets to new-style assets tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Resolution results schema: $ref: '#/definitions/AssetResolver' parameters: - in: body name: assets type: array required: true description: Array of asset IDs to convert /v2/assets/autocomplete: get: summary: Return autocompletion tokens tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Search results schema: $ref: '#/definitions/AssetAutocomplete' parameters: - in: query name: field type: string required: true enum: - area - in: query name: search type: string description: Filter by a wildcard search - in: query name: company_id type: integer description: Corva admins only. Scope to a particular company. /v2/programs: get: summary: List programs tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List programs schema: type: array items: $ref: '#/definitions/Program' parameters: - in: query name: ids description: List of program IDs to filter by items: type: integer - in: query name: company description: Search by Company ID type: integer - in: query name: name description: Search by program name type: string - in: query name: fields description: Respond with only the given list of fields, like program.name items: type: string - in: query name: lat_start description: 'Latitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: lat_end description: 'Latitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_start description: 'Longitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_end description: 'Longitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: per_page description: Number of programs to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: name' type: string enum: - name - company default: name - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc post: summary: Create a program tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created program schema: $ref: '#/definitions/Program' parameters: - in: body name: program description: Program Payload required: true type: object schema: $ref: '#/definitions/ProgramPayload' /v2/programs/{id}: get: summary: Get a single program tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Get program schema: $ref: '#/definitions/Program' parameters: - in: path name: id description: Program ID type: integer - in: query name: fields description: Respond with only the given list of fields, like program.name items: type: string patch: summary: Update a program tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated program schema: $ref: '#/definitions/Program' parameters: - in: body name: program description: Program Payload required: true type: object schema: $ref: '#/definitions/ProgramPayload' delete: summary: Delete a program tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Program deleted parameters: - in: path name: id description: Program ID required: true type: integer /v2/programs/clusters: get: summary: Get programs clustered based on their location tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Clusters schema: type: array items: $ref: '#/definitions/ProgramCluster' parameters: - in: query name: ids description: List of program IDs to filter by items: type: integer - in: query name: company description: Search by Company ID type: integer - in: query name: lat_start description: 'Latitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: lat_end description: 'Latitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_start description: 'Longitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_end description: 'Longitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: cluster_radius description: Defines how big clusters are returned. type: float default: 1.0 /v2/pads: get: summary: List pads tags: - Assets operationId: pads responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List pads schema: type: array items: $ref: '#/definitions/Pad' parameters: - in: query name: ids description: List of pad IDs to filter by items: type: integer - in: query name: company description: Search by Company ID type: integer - in: query name: program description: Search by Program ID type: integer - in: query name: frac_fleet description: Search by Frac Fleet ID type: integer - in: query name: current_frac_fleet description: Search by Frac Fleet ID where it is the current Frac Fleet on the Pad type: integer - in: query name: drillout_unit description: Search by Drillout Unit ID type: integer - in: query name: search description: Search by pad name type: string - in: query name: fields description: Respond with only the given list of fields, like pad.name items: type: string - in: query name: active description: Return records that have an active well type: boolean - in: query name: current description: Return records that are current based on PadFracFleet type: boolean - in: query name: active_before description: Return records where last_active_at is smaller than the given timestamp type: datetime - in: query name: active_after description: Return records where last_active_at is greater than the given timestamp type: datetime - in: query name: lat_start description: 'Latitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: lat_end description: 'Latitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_start description: 'Longitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_end description: 'Longitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: well_ids description: Filter by array of well ids items: type: integer - in: query name: per_page description: Number of pads to list per page type: integer - in: query name: page description: Number of page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: company,name' type: string enum: - name - company - program - drillout_unit - last_active_at default: name - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc post: summary: Create a pad tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created pad schema: $ref: '#/definitions/Pad' parameters: - in: body name: pad description: Pad Payload required: true type: object schema: $ref: '#/definitions/PadPayload' /v2/pads/{id}: get: summary: Get a single pad tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Get pad schema: $ref: '#/definitions/Pad' parameters: - in: path name: id description: Pad ID type: integer - in: query name: fields description: Respond with only the given list of fields, like pad.name items: type: string patch: summary: Update a pad tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated pad schema: $ref: '#/definitions/Pad' parameters: - in: path name: id description: Pad ID - in: body name: pad description: Pad Payload required: true type: object schema: $ref: '#/definitions/PadPayload' delete: summary: Delete a pad tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Pad deleted parameters: - in: path name: id description: Pad ID required: true type: integer /v2/pads/{id}/frac_fleets: post: summary: Add a frac fleet to a pad tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated pad schema: $ref: '#/definitions/Pad' parameters: - in: path name: id description: Pad ID - in: body name: frac_fleet_ids description: Frac Fleet IDs required: true type: array - in: body name: current_frac_fleet_id description: ID of a Frac Fleet to set to be this Pad's current Frac Fleet required: false type: integer /v2/pads/{pad_id}/frac_fleets/{id}: delete: summary: Delete a frac fleet from a pad tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated pad schema: $ref: '#/definitions/Pad' parameters: - in: path name: pad_id description: Pad ID - in: path name: id description: Frac Fleet ID /v2/pads/{pad_id}/app_wells: get: summary: Retrieve wells and app stream details for a pad filtered by app.source_type tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Pad Details schema: $ref: '#/definitions/PadDetails' parameters: - in: path name: pad_id description: Pad ID required: 'true' type: integer - in: query name: dashboard_app_id description: Find app by Dashboard app id type: integer - in: query name: app_id description: Find app by app id type: integer - in: query name: app_key description: Find app by app key type: string /v2/pads/{id}/wells: get: summary: Retrieve well and app stream details for a pad tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Pad Details schema: $ref: '#/definitions/PadDetails' description: Retrieve the wells and nested app streams for a pad. parameters: - in: path name: id description: Pad ID - in: query name: segment description: Segments to filter the wells and app streams by type: string enum: - drilling - completion - intervention - in: query name: source_type description: Source Types to filter the wells and app streams by type: string enum: - drilling - drillout - frac - pumpdown - wireline - in: query name: log_type description: Log Types to filter the wells and app streams by type: string enum: - time - depth - in: query name: status description: Statuses to filter app streams by type: string enum: - active - paused - idle - complete - in: query name: include_intervention_units description: Include intervention units in the response post: summary: Add a well to a pad tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated pad schema: $ref: '#/definitions/Pad' description: Set one or more wells so that they belong to a pad. parameters: - in: path name: id description: Pad ID - in: body name: well_ids description: Well IDs required: true type: array /v2/pads/{pad_id}/wells/{id}: delete: summary: Delete a well from a pad tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated pad schema: $ref: '#/definitions/Pad' description: Remove a well from a pad. Also removes the well from the pad.active_wells list, if found. parameters: - in: path name: pad_id description: Pad ID - in: path name: id description: Well ID /v2/pads/{id}/active_wells: post: summary: Add an active well to a pad tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated pad schema: $ref: '#/definitions/Pad' description: Set one or more wells on a pad so that they are part of the active_wells list. Also adds the wells to the pad.wells list, if not found. parameters: - in: path name: id description: Pad ID - in: body name: well_ids description: Well IDs required: true type: array /v2/pads/{pad_id}/active_wells/{id}: delete: summary: Delete an active well from a pad tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated pad schema: $ref: '#/definitions/Pad' description: Remove a well from a pad.active_wells list. parameters: - in: path name: pad_id description: Pad ID - in: path name: id description: Well ID /v2/pads/clusters: get: summary: Get pads clustered based on their location tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Clusters schema: type: array items: $ref: '#/definitions/PadCluster' parameters: - in: query name: ids description: List of pad IDs to filter by items: type: integer - in: query name: company description: Search by Company ID type: integer - in: query name: program description: Search by Program ID type: integer - in: query name: frac_fleet description: Search by Frac Fleet ID type: integer - in: query name: current_frac_fleet description: Search by Frac Fleet ID where it is the current Frac Fleet on the Pad type: integer - in: query name: drillout_unit description: Search by Drillout Unit ID type: integer - in: query name: active_before description: Return records where last_active_at is smaller than the given timestamp type: integer - in: query name: active_after description: Return records where last_active_at is greater than the given timestamp type: integer - in: query name: lat_start description: 'Latitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: lat_end description: 'Latitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_start description: 'Longitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_end description: 'Longitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: cluster_radius description: Defines how big clusters are returned. type: float default: 1.0 /v2/rigs: get: summary: List rigs tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List rigs schema: type: array items: $ref: '#/definitions/Rig' parameters: - in: query name: ids description: List of rig IDs to filter by items: type: integer - in: query name: company description: Search by Company ID type: integer - in: query name: program description: Search by Program ID type: integer - in: query name: active_well description: Search by active well ID type: integer - in: query name: has_active_well description: Return rigs that have an active well type: integer - in: query name: search description: Search by rig name type: string - in: query name: app_key description: Return rigs that have been part of any product subscription that included the given app type: string - in: query name: fields description: Respond with only the given list of fields, like rig.name items: type: string - in: query name: active description: Return records that have an active well type: string - in: query name: active_before description: Return records where last_active_at is smaller than the given timestamp type: datetime - in: query name: active_after description: Return records where last_active_at is greater than the given timestamp type: datetime - in: query name: lat_start description: 'Latitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: lat_end description: 'Latitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_start description: 'Longitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_end description: 'Longitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: existing_partial_reruns description: Filter by existing partial reruns type: boolean - in: query name: per_page description: Number of rigs to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: program,name' type: string enum: - name - program - company - last_active_at default: name - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc post: summary: Create a rig tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created rig schema: $ref: '#/definitions/Rig' parameters: - in: body name: rig description: Rig Payload required: true type: object schema: $ref: '#/definitions/RigPayload' /v2/rigs/{id}: get: summary: Get a single rig tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Get rig schema: $ref: '#/definitions/Rig' parameters: - in: path name: id description: Rig ID type: integer - in: query name: fields description: Respond with only the given list of fields, like rig.name items: type: string patch: summary: Update a rig tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated rig schema: $ref: '#/definitions/Rig' parameters: - in: body name: rig description: Rig Payload required: true type: object schema: $ref: '#/definitions/RigPayload' delete: summary: Delete a rig tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Rig deleted parameters: - in: path name: id description: Rig ID required: true type: integer /v2/rigs/clusters: get: summary: Get rigs clustered based on their location tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Clusters schema: type: array items: $ref: '#/definitions/RigCluster' parameters: - in: query name: ids description: List of rig IDs to filter by items: type: integer - in: query name: company description: Search by Company ID type: integer - in: query name: program description: Search by Program ID type: integer - in: query name: active_well description: Search by active well ID type: integer - in: query name: has_active_well description: Return rigs that have an active well type: integer - in: query name: active_before description: Return records where last_active_at is smaller than the given timestamp type: integer - in: query name: active_after description: Return records where last_active_at is greater than the given timestamp type: integer - in: query name: lat_start description: 'Latitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: lat_end description: 'Latitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_start description: 'Longitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_end description: 'Longitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: cluster_radius description: Defines how big clusters are returned. type: float default: 1.0 /v2/rigs/{rig_id}/active_well/well_cache: get: summary: Get well_cache record for the active well on the rig tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Well Cache Record schema: $ref: '#/definitions/WellCacheRecord' parameters: - in: query name: rig_id description: Rig ID type: integer - in: header name: Serializer description: 'Controls how the data is serialized. Options: "drilling-widget"' type: string /v2/drillout_units: get: summary: List drillout units tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List drillout units schema: type: array items: $ref: '#/definitions/DrilloutUnit' parameters: - in: query name: ids description: List of drillout unit IDs to filter by items: type: integer - in: query name: company description: Search by Company ID type: integer - in: query name: program description: Search by Program ID type: integer - in: query name: pad description: Search by Pad ID type: integer - in: query name: well description: Search by Well ID type: integer - in: query name: search description: Search by drillout unit name type: string - in: query name: app_key description: Return drillout units that have been part of any product subscription that included the given app type: string - in: query name: fields description: Respond with only the given list of fields, like drillout_unit.name items: type: string - in: query name: active description: Return records that have an active well type: string - in: query name: active_before description: Return records where last_active_at is smaller than the given timestamp type: datetime - in: query name: active_after description: Return records where last_active_at is greater than the given timestamp type: datetime - in: query name: lat_start description: 'Latitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: lat_end description: 'Latitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_start description: 'Longitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_end description: 'Longitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: per_page description: Number of drillout units to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: company,name' type: string enum: - name - program - company - pad - well - last_active_at default: name - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc post: summary: Create a drillout unit tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created drillout unit schema: $ref: '#/definitions/DrilloutUnit' parameters: - in: body name: drillout_unit description: Drillout Unit Payload required: true type: object schema: $ref: '#/definitions/DrilloutUnitPayload' /v2/drillout_units/{id}: get: summary: Get a single drillout unit tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Get drillout unit schema: $ref: '#/definitions/DrilloutUnit' parameters: - in: path name: id description: Drillout Unit ID type: integer - in: query name: fields description: Respond with only the given list of fields, like drillout_unit.name items: type: string patch: summary: Update a drillout unit tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated drillout unit schema: $ref: '#/definitions/DrilloutUnit' parameters: - in: body name: drillout_unit description: Drillout Unit Payload required: true type: object schema: $ref: '#/definitions/DrilloutUnitPayload' delete: summary: Delete a drillout unit tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Drillout Unit deleted parameters: - in: path name: id description: Drillout Unit ID required: true type: integer /v2/drillout_units/clusters: get: summary: Get drillout units clustered based on their location tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Clusters schema: type: array items: $ref: '#/definitions/DrilloutUnitCluster' parameters: - in: query name: ids description: List of drillout unit IDs to filter by items: type: integer - in: query name: company description: Search by Company ID type: integer - in: query name: program description: Search by Program ID type: integer - in: query name: pad description: Search by Pad ID type: integer - in: query name: well description: Search by Well ID type: integer - in: query name: active_before description: Return records where last_active_at is smaller than the given timestamp type: integer - in: query name: active_after description: Return records where last_active_at is greater than the given timestamp type: integer - in: query name: lat_start description: 'Latitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: lat_end description: 'Latitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_start description: 'Longitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_end description: 'Longitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: cluster_radius description: Defines how big clusters are returned. type: float default: 1.0 /v2/wells: get: summary: List wells tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List wells schema: type: array items: $ref: '#/definitions/Well' parameters: - in: query name: ids description: List of well IDs to filter by items: type: integer - in: query name: company description: Search by Company ID type: integer - in: query name: program description: Search by Program ID type: integer - in: query name: pad description: Search by Pad ID type: integer - in: query name: drillout_unit description: Search by Drillout Unit ID type: integer - in: query name: frac_fleet description: Search by Frac Fleet ID type: integer - in: query name: status description: Search by well status type: string enum: - unknown - active - paused - complete - idle - deleting - deletion_paused - archived - in: query name: state description: Search by well state type: string enum: - permitted - planned - drilling - drilled_not_completed - completions - completed - drillouts - producing - intervention - in: query name: visibility description: Search by well visibility type: string enum: - visible - visible_to_admin - deleted - template - in: query name: identifier description: Search by well identifier type: string - in: query name: area description: Search by well area type: string - in: query name: search description: Search by well name type: string - in: query name: asset_id description: Filter by asset ID type: integer - in: query name: fields description: Respond with only the given list of fields, like well.name items: type: string - in: query name: active_before description: Return records where last_active_at is smaller than the given timestamp type: datetime - in: query name: active_after description: Return records where last_active_at is greater than the given timestamp type: datetime - in: query name: last_active_drilling_before description: Return records where last_drilling_at is smaller than the given timestamp type: datetime - in: query name: last_active_drilling_after description: Return records where last_drilling_at is greater than the given timestamp type: datetime - in: query name: per_page description: Number of wells to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: company,status,visibility,name' type: string enum: - company - rig - program - name - status - visibility - identifier - last_active_at default: name - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc - in: query name: lat_start description: 'Latitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: lat_end description: 'Latitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_start description: 'Longitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_end description: 'Longitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: filter_by_completed_streams description: Search by wells that have completed app_streams type: string - in: query name: include_completed_idle_paused_stream description: Add has_completed_idle_paused_stream attribute to response type: boolean - in: query name: app_segment description: Add app segment value to find out completed streams type: string enum: - drilling - completion - intervention - in: query name: app_stream_source_type description: Search by wells with app_streams by source_type type: string enum: - drilling - drillout - frac - pumpdown - wireline - lithology - in: query name: existing_partial_reruns description: Filter by existing partial reruns type: boolean - in: query name: distance description: Hash - latitude/longitude. Will return distance from point specified to well location for each well found. type: object schema: longitude: float latitude: float example: longitude: 50.3435 latitude: -100.234 - in: query name: point_and_distance description: Filter by wells between geo point and distance in miles. Subject point is the center of the circle. type: object schema: distance: float subject_point: type: object example: distance: 200.5 subject_point: latitude: 61 longitude: 61 - in: query name: polygon_coords description: Filter by wells within a polygon defined by an array of coordinate points. Minimum 3 points required. The polygon will be automatically closed. type: array schema: items: type: object properties: latitude: type: float description: Latitude coordinate of the polygon point longitude: type: float description: Longitude coordinate of the polygon point example: value: - latitude: 29.0 longitude: -96.0 - latitude: 31.0 longitude: -96.0 - latitude: 31.0 longitude: -94.0 - latitude: 29.0 longitude: -94.0 - in: query name: well_start_before description: Filter by well_start_before in seconds timestamp type: integer - in: query name: well_start_after description: Filter by well_start_after in seconds timestamp type: integer - in: query name: is_asset_viewer description: Filter by custom_property is_asset_viewer type: boolean - in: query name: archivation_date_before description: Filter by archivation_date_before in seconds timestamp type: integer - in: query name: archivation_date_after description: Filter by archivation_date_after in seconds timestamp type: integer - in: query name: archivation_performer_id description: Filter by archivation_performer_id type: array - in: query name: intervention_unit_event_id description: Filter by intervention_unit_event_id type: array - in: query name: intervention_unit_id description: Filter by intervention_unit_id type: array post: summary: Create a well tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created well schema: $ref: '#/definitions/Well' parameters: - in: body name: well description: Well Payload required: true type: object schema: $ref: '#/definitions/WellPayload' /v2/wells/{id}: get: summary: Get a single well tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Get well schema: $ref: '#/definitions/Well' parameters: - in: path name: id description: Well ID type: integer - in: query name: fields description: Respond with only the given list of fields, like well.name items: type: string patch: summary: Update a well tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated well schema: $ref: '#/definitions/Well' parameters: - in: body name: well description: Well Payload required: true type: object schema: $ref: '#/definitions/WellPayload' delete: summary: Delete a well tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Well deleted parameters: - in: path name: id description: Well ID required: true type: integer /v2/wells/clusters: get: summary: Get wells clustered based on their location tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Well clusters schema: type: array items: $ref: '#/definitions/WellCluster' parameters: - in: query name: ids description: List of well IDs to filter by items: type: integer - in: query name: company description: Search by Company ID type: integer - in: query name: program description: Search by Program ID type: integer - in: query name: pad description: Search by Pad ID type: integer - in: query name: drillout_unit description: Search by Drillout Unit ID type: integer - in: query name: frac_fleet description: Search by Frac Fleet ID type: integer - in: query name: status description: Search by well status type: string enum: - unknown - active - paused - complete - idle - deleting - deletion_paused - archived - in: query name: state description: Search by well state type: string enum: - permitted - planned - drilling - drilled_not_completed - completions - completed - drillouts - producing - intervention - in: query name: visibility description: Search by well visibility type: string enum: - visible - visible_to_admin - deleted - template - in: query name: identifier description: Search by well identifier type: string - in: query name: area description: Search by well area type: string - in: query name: active_before description: Return records where last_active_at is smaller than the given timestamp type: integer - in: query name: active_after description: Return records where last_active_at is greater than the given timestamp type: integer - in: query name: lat_start description: 'Latitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: lat_end description: 'Latitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_start description: 'Longitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_end description: 'Longitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: cluster_radius description: Defines how big clusters are returned. type: float default: 1.0 /v2/frac_fleets: get: summary: List frac fleets tags: - Assets operationId: fracFleets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List frac fleets schema: type: array items: $ref: '#/definitions/FracFleet' parameters: - in: query name: ids description: List of frac fleet IDs to filter by items: type: integer - in: query name: company description: Search by Company ID type: integer - in: query name: program description: Search by Program ID type: integer - in: query name: pad description: Search by Pad ID type: integer - in: query name: current_pad description: Search by Pad ID where it is the current Pad for the Frac Fleet type: integer - in: query name: search description: Search by frac fleet name type: string - in: query name: app_key description: Return frac fleets that have been part of any product subscription that included the given app type: string - in: query name: fields description: Respond with only the given list of fields, like frac fleet.name items: type: string - in: query name: active description: Return records that have an active well type: string - in: query name: active_before description: Return records where last_active_at is smaller than the given timestamp type: datetime - in: query name: active_after description: Return records where last_active_at is greater than the given timestamp type: datetime - in: query name: lat_start description: 'Latitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: lat_end description: 'Latitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_start description: 'Longitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_end description: 'Longitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: per_page description: Number of frac fleets to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: name' type: string enum: - name - company - last_active_at default: name - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc post: summary: Create a frac fleet tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created frac fleet schema: $ref: '#/definitions/FracFleet' parameters: - in: body name: frac_fleet description: Frac Fleet Payload required: true type: object schema: $ref: '#/definitions/FracFleetPayload' /v2/frac_fleets/{id}: get: summary: Get a single frac fleet tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Get frac fleet schema: $ref: '#/definitions/FracFleet' parameters: - in: path name: id description: Frac Fleet ID type: integer - in: query name: fields description: Respond with only the given list of fields, like frac_fleet.name items: type: string patch: summary: Update a frac fleet tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated frac fleet schema: $ref: '#/definitions/FracFleet' parameters: - in: body name: frac_fleet description: Frac Fleet Payload required: true type: object schema: $ref: '#/definitions/FracFleetUpdatePayload' delete: summary: Delete a frac fleet tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Frac Fleet deleted parameters: - in: path name: id description: Frac Fleet ID required: true type: integer /v2/frac_fleets/{id}/pads: post: summary: Add one or more pads to a frac fleet, or set the current pad tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated frac fleet schema: $ref: '#/definitions/FracFleet' parameters: - in: path name: id description: Frac Fleet ID - in: body name: pad_ids description: Pad IDs required: false type: array - in: body name: current_pad_id description: ID of a Pad to set to be this Frac Fleet's current Pad required: false type: integer /v2/frac_fleets/{frac_fleet_id}/pads/{id}: delete: summary: Delete a pad from a frac fleet tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated frac fleet schema: $ref: '#/definitions/FracFleet' parameters: - in: path name: frac_fleet_id description: Frac Fleet ID - in: path name: id description: Pad ID /v2/frac_fleets/{frac_fleet_id}/active_wells/well_cache: get: summary: Get well_cache records for the active wells on the frac fleet tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Well Cache Record schema: $ref: '#/definitions/WellCacheRecord' parameters: - in: query name: frac_fleet_id description: Frac Fleet ID type: integer - in: header name: Serializer description: 'Controls how the data is serialized. Options: "completions-widget"' type: string /v2/frac_fleets/clusters: get: summary: Get frac fleets clustered based on their location tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Clusters schema: type: array items: $ref: '#/definitions/FracFleetCluster' parameters: - in: query name: ids description: List of frac fleet IDs to filter by items: type: integer - in: query name: company description: Search by Company ID type: integer - in: query name: program description: Search by Program ID type: integer - in: query name: pad description: Search by Pad ID type: integer - in: query name: current_pad description: Search by Pad ID where it is the current Pad for the Frac Fleet type: integer - in: query name: active_before description: Return records where last_active_at is smaller than the given timestamp type: integer - in: query name: active_after description: Return records where last_active_at is greater than the given timestamp type: integer - in: query name: lat_start description: 'Latitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: lat_end description: 'Latitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_start description: 'Longitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_end description: 'Longitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: cluster_radius description: Defines how big clusters are returned. type: float default: 1.0 /v2/wirelines: get: summary: List wirelines tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List wirelines schema: type: array items: $ref: '#/definitions/Wireline' parameters: - in: query name: ids description: List of wireline IDs to filter by items: type: integer - in: query name: company description: Search by Company ID type: integer - in: query name: search description: Search by wireline name type: string - in: query name: fields description: Respond with only the given list of fields, like wireline.name items: type: string - in: query name: lat_start description: 'Latitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: lat_end description: 'Latitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_start description: 'Longitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: long_end description: 'Longitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.' type: float - in: query name: per_page description: Number of wirelines to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: name' type: string enum: - name default: name - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc post: summary: Create a wireline tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created wireline schema: $ref: '#/definitions/Wireline' parameters: - in: body name: wireline description: Wireline Payload required: true type: object schema: $ref: '#/definitions/WirelinePayload' /v2/wirelines/{id}: get: summary: Get a single wireline tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Get wireline schema: $ref: '#/definitions/Wireline' parameters: - in: path name: id description: Wireline ID type: integer - in: query name: fields description: Respond with only the given list of fields, like wireline.name items: type: string patch: summary: Update a wireline tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated wireline schema: $ref: '#/definitions/Wireline' parameters: - in: body name: wireline description: Wireline Payload required: true type: object schema: $ref: '#/definitions/WirelinePayload' delete: summary: Delete a wireline tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Wireline deleted parameters: - in: path name: id description: Wireline ID required: true type: integer /v2/companies/{company_id}/authentication_schemas: get: summary: List authentication schemas usable by the company tags: - Security responses: '401': description: Missing or invalid authentication '403': description: Cross-tenant or insufficient permissions '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Authentication schemas schema: $ref: '#/definitions/AuthenticationSchemaV2List' parameters: - in: path name: company_id description: Company ID required: true type: integer format: int64 /v2/companies/{company_id}/authentication_schemas/{id}: get: summary: Show an authentication schema tags: - Security responses: '401': description: Missing or invalid authentication '403': description: Cross-tenant or insufficient permissions '404': description: Not visible from this company '200': description: Authentication schema schema: $ref: '#/definitions/AuthenticationSchemaV2Single' parameters: - in: path name: company_id description: Company ID required: true type: integer format: int64 - in: path name: id description: Authentication Schema ID required: true type: integer format: int64 delete: summary: Delete an authentication schema tags: - Security responses: '401': description: Missing or invalid authentication '403': description: Cross-tenant or insufficient permissions '404': description: Not visible from this company '200': description: Deleted '422': description: Refused — global schemas cannot be deleted from a company-scoped URL parameters: - in: path name: company_id description: Company ID required: true type: integer format: int64 - in: path name: id description: Authentication Schema ID required: true type: integer format: int64 /v2/companies/{company_id}/company_domains: get: summary: List company domains description: Returns every CompanyDomain row for the given company. Cross-tenant queries (admin of company A reading company B) return 403. tags: - Security responses: '401': description: Missing or invalid authentication '403': description: Cross-tenant or insufficient permissions '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Company domains schema: $ref: '#/definitions/CompanyDomainV2List' parameters: - in: path name: company_id description: Company ID required: true type: integer format: int64 post: summary: Create a company domain description: Restricted to company admins. tags: - Security responses: '401': description: Missing or invalid authentication '403': description: Cross-tenant or insufficient permissions '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created company domain schema: $ref: '#/definitions/CompanyDomainV2Single' '400': description: Validation error (e.g. domain already claimed exclusively) parameters: - in: path name: company_id description: Company ID required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/CompanyDomainV2Payload' /v2/companies/{company_id}/company_domains/{id}: get: summary: Show a company domain tags: - Security responses: '401': description: Missing or invalid authentication '403': description: Cross-tenant or insufficient permissions '404': description: Not found '200': description: Company domain schema: $ref: '#/definitions/CompanyDomainV2Single' parameters: - in: path name: company_id description: Company ID required: true type: integer format: int64 - in: path name: id description: Company Domain ID required: true type: integer format: int64 patch: summary: Update a company domain tags: - Security responses: '401': description: Missing or invalid authentication '403': description: Cross-tenant or insufficient permissions '404': description: Not found '200': description: Updated company domain schema: $ref: '#/definitions/CompanyDomainV2Single' '400': description: Validation error parameters: - in: path name: company_id description: Company ID required: true type: integer format: int64 - in: path name: id description: Company Domain ID required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/CompanyDomainV2Payload' delete: summary: Delete a company domain tags: - Security responses: '401': description: Missing or invalid authentication '403': description: Cross-tenant or insufficient permissions '404': description: Not found '200': description: Deleted parameters: - in: path name: company_id description: Company ID required: true type: integer format: int64 - in: path name: id description: Company Domain ID required: true type: integer format: int64 /v2/dashboard_app_annotations/{app_annotation_id}/comments/: get: summary: List comments for app annotation tags: - DashboardAppAnnotations responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: type: array items: $ref: '#/definitions/Comment' parameters: - in: path name: app_annotation_id description: App Annotation ID required: true type: integer format: int64 - in: query name: per_page description: Number of items to list per page type: integer - in: query name: page description: Number of page type: integer - in: query name: offset description: Offset for pagination type: integer post: summary: Create a comment for app annotation tags: - DashboardAppAnnotations responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created app annotation comment schema: $ref: '#/definitions/Comment' parameters: - in: body name: comment description: Comment Payload required: true type: object schema: $ref: '#/definitions/CommentPayload' /v2/dashboard_app_annotations/{app_annotation_id}/comments/{id}: get: summary: Show comment for app annotation tags: - DashboardAppAnnotations responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/Comment' parameters: - in: path name: app_annotation_id description: App Annotation ID required: true type: integer format: int64 - in: path name: id description: Comment ID required: true type: integer format: int64 patch: summary: Update an app annotation comment tags: - DashboardAppAnnotations responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated app annotation comment schema: $ref: '#/definitions/Comment' parameters: - in: path name: app_annotation_id description: App Annotation ID required: true type: integer format: int64 - in: path name: id description: Comment ID required: true type: integer format: int64 - in: body name: comment description: Comment Payload required: true type: object schema: $ref: '#/definitions/CommentPayload' delete: summary: Delete an app annotation comment tags: - DashboardAppAnnotations responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: App Annotation comment deleted parameters: - in: path name: app_annotation_id description: App Annotation ID required: true type: integer format: int64 - in: path name: id description: Comment ID required: true type: integer format: int64 /v2/dashboard_app_annotations/{app_annotation_id}/comments/{comment_id}/likes: get: summary: List likes for app annotation's comment tags: - DashboardAppAnnotations responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: type: array items: $ref: '#/definitions/Like' parameters: - in: path name: app_annotation_id description: App Annotation ID required: true type: integer format: int64 - in: path name: comment_id description: Comment ID required: true type: integer format: int64 /v2/dashboard_app_annotations/{app_annotation_id}/comments/{comment_id}/likes/toggle: post: summary: Toggle a like for app annotation's comment tags: - DashboardAppAnnotations responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created/deleted alert app annotation parameters: - in: path name: app_annotation_id description: App Annotation ID required: true type: integer format: int64 - in: path name: comment_id description: Comment ID required: true type: integer format: int64 /v2/dashboard_app_annotations/{app_annotation_id}/likes: get: summary: List likes for app annotation tags: - DashboardAppAnnotations responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: type: array items: $ref: '#/definitions/Like' parameters: - in: path name: app_annotation_id description: App Annotation ID required: true type: integer format: int64 /v2/dashboard_app_annotations/{app_annotation_id}/likes/toggle: post: summary: Toggle a like for app annotation tags: - DashboardAppAnnotations responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created/deleted app annotation like parameters: - in: path name: app_annotation_id description: App Annotation ID required: true type: integer format: int64 /v2/dashboard_app_annotations: get: summary: List annotations for app-asset combination tags: - DashboardAppAnnotations responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/DashboardAppAnnotationList' parameters: - in: query name: active description: Set to true to return active annotations, false - to return not active annotations type: boolean - in: query name: asset_id description: Asset ID type: integer format: int64 - in: query name: app_id description: App ID type: integer format: int64 - in: query name: user_id description: Filter by user ID type: integer format: int64 - in: query name: user_email description: Filter by user email type: string post: summary: Create an app annotation tags: - DashboardAppAnnotations responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created app annotation schema: $ref: '#/definitions/DashboardAppAnnotationSingle' parameters: - in: body name: app_annotation description: Annotation Payload required: true type: object schema: $ref: '#/definitions/DashboardAppAnnotationPayload' /v2/dashboard_app_annotations/{id}: get: summary: Show app annotation tags: - DashboardAppAnnotations responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/DashboardAppAnnotationSingle' parameters: - in: path name: id description: DashboardAppAnnotation ID required: true type: integer format: int64 patch: summary: Update an app annotation tags: - DashboardAppAnnotations responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated app annotation schema: $ref: '#/definitions/DashboardAppAnnotationSingle' parameters: - in: path name: id description: DashboardAppAnnotation ID required: true type: integer format: int64 - in: body name: app_annotation description: Annotation Payload required: true type: object schema: $ref: '#/definitions/DashboardAppAnnotationUpdatePayload' delete: summary: Delete an app annotation tags: - DashboardAppAnnotations responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: App annotation deleted parameters: - in: path name: id description: DashboardAppAnnotation ID required: true type: integer /v2/dashboard_app_annotations/{id}/close: get: summary: Closes app annotation for curent user, returns new last annotation for user and app-asset combination tags: - DashboardAppAnnotations responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/DashboardAppAnnotationSingle' parameters: - in: path name: id description: DashboardAppAnnotation ID required: true type: integer format: int64 /v2/dashboard_app_annotations/last_annotations: get: summary: Returns last app annotations for current user and dashboard or dashboard-asset combination tags: - DashboardAppAnnotations responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/DashboardAppWithLastAnnotationList' parameters: - in: query name: dashboard_id description: Dashboard ID required: true type: integer format: int64 - in: query name: asset_id description: Asset ID required: false type: integer format: int64 - in: query name: parent_asset_id description: Parent Asset ID required: false type: integer format: int64 /v2/users/{user_id}/dashboards/{dashboard_id}/dashboard_apps: post: summary: Create a dashboard app with app name and category tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created dashboard app schema: $ref: '#/definitions/DashboardApp' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: dashboard_id description: Dashboard ID required: true type: integer format: int64 - in: path name: filter_asset_id description: Data filter's Asset ID required: true type: integer format: int64 - in: body name: name description: Name of the app to add to the dashboard required: true type: string - in: body name: category description: Category of the app to add to the dashboard required: true type: string - in: body name: settings description: Settings for the new dashboard app required: true type: object - in: body name: coodrinates description: Coordinates for the new dashboard app required: true type: object /v1/users/{user_id}/dashboards/{dashboard_id}/dashboard_apps/bulk_create: post: summary: Bulk create dashboard_apps for different asset_ids tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created dashboard apps schema: $ref: '#/definitions/BulkCreatedDashboardApps' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: dashboard_id description: Dashboard ID required: true type: integer format: int64 - in: body name: app_key description: App key required: true type: string example: App key - in: body name: category description: App category required: false type: string example: App category - in: body name: workflow_id description: Workflow ID required: false type: integer example: Workflow ID - in: body name: assets description: Array of Asset items required: true type: object schema: properties: assetId: type: string rigId: type: string fracFleetId: type: string example: assets: - assetId: 1 - rigId: 2 - fracFleetId: 3 - fracFleetId: 4 padId: 5 - in: body name: coordinates description: Coordinates required: true type: object schema: properties: h: type: string w: type: string x: type: string y: type: string example: coordinates: h: 10 w: 4 x: 0 y: 36 - in: body name: settings description: Settings required: true type: object schema: properties: package: type: string some_other_setting: type: string example: settings: package: BETA some_other_setting: Some value /v2/users/{user_id}/dashboards/{dashboard_id}/dashboard_apps/batch_update: put: summary: Update all dashboard apps in a dashboard tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created dashboard app schema: $ref: '#/definitions/DashboardApp' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: dashboard_id description: Dashboard ID required: true type: integer format: int64 - in: body name: dashboard_apps description: Dashboard apps to update required: true type: array schema: $ref: '#/definitions/DashboardAppBatchUpdatePayload' /v2/users/{user_id}/dashboards/{dashboard_id}/dashboard_apps/{id}: get: summary: Show dashboard app tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/DashboardApp' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: dashboard_id description: Dashboard ID required: true type: integer format: int64 - in: path name: id description: Dashboard App ID required: true type: integer format: int64 - in: path name: filter_asset_id description: Data filter's Asset ID required: true type: integer format: int64 patch: summary: Update a dashboard app tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated dashboard app schema: $ref: '#/definitions/DashboardV2' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: dashboard_id description: Dashboard ID required: true type: integer format: int64 - in: path name: id description: Dashboard App ID required: true type: integer format: int64 - in: path name: filter_asset_id description: Data filter's Asset ID required: true type: integer format: int64 - in: body name: settings description: Settings for the new dashboard app required: true type: object - in: body name: coodrinates description: Coordinates for the new dashboard app required: true type: object delete: summary: Delete a dashboard app tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Dashboard app deleted parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: dashboard_id description: Dashboard ID required: true type: integer format: int64 - in: path name: id description: Dashboard App ID required: true type: integer format: int64 /v2/users/{user_id}/dashboard_folders: get: summary: List dashboard folders tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/DashboardFolderList' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 post: summary: Create a dashboard folder tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created dashboard folder schema: $ref: '#/definitions/DashboardFolder' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: body name: dashboard_folder description: Dashboard Folder Payload required: true type: object schema: $ref: '#/definitions/DashboardFolderPayload' /v2/users/{user_id}/dashboard_folders/{id}: patch: summary: Update a dashboard folder tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated dashboard schema: $ref: '#/definitions/DashboardFolder' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: id description: Dashboard Folder ID required: true type: integer format: int64 - in: body name: dashboard_folder description: Dashboard Folder Payload required: true type: object schema: $ref: '#/definitions/DashboardFolderPayload' delete: summary: Delete a dashboard folder tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Dashboard folder deleted parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: id description: Dashboard Folder ID required: true type: integer format: int64 /v2/users/{user_id}/dashboard_folders/{dashboard_folder_id}/dashboard_shares: get: summary: List dashboard shares in a dashboard folder for a user tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: array description: Successful response schema: type: array items: $ref: '#/definitions/DashboardFolderDashboardShare' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: dashboard_folder_id description: Dashboard Folder ID required: true type: integer format: int64 post: summary: Add a dashboard share to a dashboard folder tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Added record schema: $ref: '#/definitions/DashboardFolderDashboardShare' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: body name: dashboard_folder_dashboard_share description: Payload required: true type: object schema: $ref: '#/definitions/DashboardFolderDashboardSharePayload' /v2/users/{user_id}/dashboard_folders/{dashboard_folder_id}/dashboard_shares/{id}: patch: summary: Update a dashboard share in a dashboard folder tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated record schema: $ref: '#/definitions/DashboardFolderDashboardShare' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: dashboard_folder_id description: Dashboard Folder ID required: true type: integer format: int64 - in: path name: id description: DashboardFolderDashboardShare ID required: true type: integer format: int64 - in: body name: dashboard_folder_dashboard_share description: Payload required: true type: object schema: $ref: '#/definitions/DashboardFolderDashboardShareUpdatePayload' delete: summary: Remove a dashboard share from a dashboard folder tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Record deleted parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: dashboard_folder_id description: Dashboard Folder ID required: true type: integer format: int64 - in: path name: id description: DashboardFolderDashboardShare ID required: true type: integer format: int64 /v2/dashboard_folder_shares: get: summary: List dashboard folder shares tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/DashboardFolderShareList' parameters: - in: query name: viewed description: Filter by viewed required: false type: boolean - in: owner_id name: viewed description: Filter by Owner ID required: false type: integer format: int64 - in: dashboard_folder_id name: viewed description: Filter by DashboardFolder ID required: false type: integer format: int64 post: summary: Create a dashboard folder share tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Dashboard Folder Share schema: $ref: '#/definitions/DashboardFolderShare' parameters: - in: body name: dashboard_folder_share description: Dashboard Folder Share Payload required: true type: object schema: $ref: '#/definitions/DashboardFolderShareCreatePayload' /v2/dashboard_folder_shares/{id}: patch: summary: Update a dashboard folder share tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated dashboard folder share schema: $ref: '#/definitions/DashboardFolderShare' parameters: - in: path name: id description: Dashboard Folder Share ID required: true type: integer format: int64 - in: body name: dashboard_folder_share description: Dashboard Folder Share Payload required: true type: object schema: $ref: '#/definitions/DashboardFolderShareUpdatePayload' delete: summary: Delete a dashboard folder share tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Dashboard folder deleted parameters: - in: path name: id description: Dashboard Folder Share ID required: true type: integer format: int64 /v2/dashboard_folder_shares/{id}/use: post: summary: Use dashboard folder share for user tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Copied dashboard folder schema: $ref: '#/definitions/DashboardFolderShare' parameters: - in: path name: id description: Dashboard Folder Share ID required: true type: integer format: int64 - in: body name: dashboard_folder_share description: Dashboard Folder Share Payload required: true type: object schema: $ref: '#/definitions/DashboardFolderShareUpdatePayload' /v1/users/{user_id}/dashboards: get: summary: List dashboards for user tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: array description: Successful response schema: type: array items: $ref: '#/definitions/Dashboard' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 /v1/users/{user_id}/dashboards/{id}: get: summary: Get dashboard by ID tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response schema: $ref: '#/definitions/Dashboard' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: id description: Dashboard ID required: true type: integer format: int64 /v2/users/{user_id}/dashboards: get: summary: List dashboards tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/DashboardV2List' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 post: summary: Create a dashboard tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created dashboard schema: $ref: '#/definitions/DashboardV2' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: body name: dashboard description: Dashboard Payload required: true type: object schema: $ref: '#/definitions/DashboardV2Payload' /v2/users/{user_id}/dashboards/{id}: get: summary: Show dashboard tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/DashboardV2' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: id description: Dashboard ID required: true type: integer format: int64 - in: path name: filter_asset_id description: Data filter's Asset ID required: true type: integer format: int64 patch: summary: Update a dashboard tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated dashboard schema: $ref: '#/definitions/DashboardV2' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: id description: Dashboard ID required: true type: integer format: int64 - in: body name: dashboard description: Dashboard Payload required: true type: object schema: $ref: '#/definitions/DashboardV2Payload' delete: summary: Delete a dashboard tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Dashboard deleted parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: id description: Dashboard ID required: true type: integer format: int64 /v2/users/{user_id}/dashboards/{id}/clone: post: summary: Clone a dashboard tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Cloned dashboard schema: $ref: '#/definitions/DashboardV2' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: id description: Dashboard ID required: true type: integer format: int64 - in: body name: dashboard description: Dashboard Payload required: true type: object schema: $ref: '#/definitions/DashboardV2Payload' /v2/dashboards/templates: get: summary: Get template dashboards tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Template dashboards schema: $ref: '#/definitions/DashboardV2List' /v2/users/{user_id}/dashboards/{id}/use_template: post: summary: Set dashboard apps and layout from a template dashboard tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Modified dashboard schema: $ref: '#/definitions/DashboardV2' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: id description: Dashboard ID required: true type: integer format: int64 - in: body name: template_dashboard_id required: true type: integer format: int64 /v2/dashboards: get: summary: List all dashboards tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/DashboardMinimumV2List' parameters: - in: query name: visibility description: Filter Dashboards by visibility type: string enum: - visible - hidden - in: query name: type description: Filter Dashboards by type type: string enum: - asset_dashboard - dashboard - alert_dashboard - in: query name: viewed description: Filter Dashboards by viewed type: string enum: - 'true' - 'false' - in: query name: segment description: Filter Dashboards by segment type: string enum: - drilling - completion - intervention - in: query name: layout description: Filter Dashboards by layout type: string - in: query name: category description: Filter Dashboards by category type: string - in: query name: exclude_shared description: Filter Shared Dashboards type: boolean - in: query name: can_update description: Filter Dashboards by ability to update type: boolean - in: query name: sort description: Sort dashboards by order field type: string enum: - asc - desc /v2/dashboards/{id}/available_timezones: get: summary: List timezones for dashboard tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/DashboardTimezones' parameters: - in: path name: id description: Dashboard ID required: true type: integer format: int64 /v2/well_plan_checklists: get: summary: List well plan checklists tags: - Well Plan Checklists responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/WellPlanChecklistV2List' parameters: - in: query name: company_id description: Filter by company ID required: false type: integer format: int64 - in: query name: per_page description: Number of items to list per page required: false type: integer - in: query name: page description: Page number required: false type: integer /v2/well_plan_checklists/{id}: get: summary: Show well plan checklist tags: - Well Plan Checklists responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/WellPlanChecklistV2Response' parameters: - in: path name: id description: Well Plan Checklist ID required: true type: integer format: int64 /v2/well_plans: get: summary: List well plans tags: - Well Plans responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/WellPlanV2List' parameters: - in: query name: company_id description: Filter by company ID required: false type: integer format: int64 - in: query name: kind description: Filter by well plan kind required: false type: string enum: - default - template - in: query name: well_id description: Filter by well ID required: false type: integer format: int64 - in: query name: status description: Filter by status required: false type: string enum: - draft - review - approved - in: query name: search description: Case-insensitive search by well plan name required: false type: string - in: query name: per_page description: Number of items to list per page required: false type: integer - in: query name: page description: Page number required: false type: integer post: summary: Create a well plan tags: - Well Plans responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created well plan schema: $ref: '#/definitions/WellPlanV2Response' parameters: - in: body name: well_plan description: Well Plan Payload required: true type: object schema: $ref: '#/definitions/WellPlanV2Payload' /v2/well_plans/copy: post: summary: Copy data from one well plan into another tags: - Well Plans responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Well plan copy created and enqueued for processing schema: $ref: '#/definitions/WellPlanCopyV2Response' parameters: - in: body name: body description: Well Plan Copy Payload required: true type: object schema: $ref: '#/definitions/WellPlanCopyV2Payload' /v2/well_plans/{id}: get: summary: Show well plan tags: - Well Plans responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/WellPlanV2Response' parameters: - in: path name: id description: Well Plan ID required: true type: integer format: int64 patch: summary: Update well plan tags: - Well Plans responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated well plan schema: $ref: '#/definitions/WellPlanV2Response' parameters: - in: path name: id description: Well Plan ID required: true type: integer format: int64 - in: body name: well_plan description: Well Plan Payload required: true type: object schema: $ref: '#/definitions/WellPlanV2UpdatePayload' delete: summary: Delete well plan tags: - Well Plans responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Well plan deleted schema: properties: status: type: string parameters: - in: path name: id description: Well Plan ID required: true type: integer format: int64 /v2/well_planning_dashboards: get: summary: List well planning dashboards tags: - Well Planning Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/WellPlanningDashboardV2List' parameters: - in: query name: company_id description: Filter by company ID required: false type: integer format: int64 - in: query name: asset_id description: Filter by asset ID (well) required: false type: integer format: int64 - in: query name: type description: 'Filter by type: custom_well_planning_dashboard (default) or default_well_planning_dashboard' required: false type: string post: summary: Create a custom planning dashboard for a well tags: - Well Planning Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created well planning dashboard schema: $ref: '#/definitions/WellPlanningDashboardV2Response' parameters: - in: body name: well_planning_dashboard description: Well Planning Dashboard Payload required: true type: object schema: $ref: '#/definitions/WellPlanningDashboardV2Payload' /v2/well_planning_dashboards/{id_or_slug}: get: summary: Show well planning dashboard tags: - Well Planning Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/WellPlanningDashboardV2Response' parameters: - in: path name: id_or_slug description: Dashboard ID or slug required: true type: string - in: query name: asset_id description: Asset ID used for dashboard timezone/unit overrides required: false type: integer format: int64 patch: summary: Update a well planning dashboard tags: - Well Planning Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated well planning dashboard schema: $ref: '#/definitions/WellPlanningDashboardV2Response' parameters: - in: path name: id_or_slug description: Dashboard ID or slug required: true type: string - in: body name: well_planning_dashboard description: Well Planning Dashboard Payload required: true type: object schema: $ref: '#/definitions/WellPlanningDashboardV2UpdatePayload' delete: summary: Delete a well planning dashboard tags: - Well Planning Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Well planning dashboard deleted schema: properties: status: type: string parameters: - in: path name: id_or_slug description: Dashboard ID or slug required: true type: string /v2/well_planning_dashboards/{well_planning_dashboard_id_or_slug}/dashboard_apps: post: summary: Create a dashboard app on a well planning dashboard tags: - Well Planning Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created dashboard app schema: $ref: '#/definitions/DashboardApp' parameters: - in: path name: well_planning_dashboard_id_or_slug description: Well Planning Dashboard ID or slug required: true type: string - in: body name: dashboard_app description: Dashboard App Payload required: true type: object schema: $ref: '#/definitions/WellPlanningDashboardAppV2Payload' put: summary: Batch update dashboard apps on a well planning dashboard tags: - Well Planning Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated dashboard apps schema: $ref: '#/definitions/DashboardAppList' parameters: - in: path name: well_planning_dashboard_id_or_slug description: Well Planning Dashboard ID or slug required: true type: string - in: body name: dashboard_apps description: Dashboard apps to update required: true type: object schema: $ref: '#/definitions/DashboardAppBatchUpdatePayload' /v2/well_planning_dashboards/{well_planning_dashboard_id_or_slug}/dashboard_apps/bulk_create: post: summary: Bulk create dashboard apps on a well planning dashboard tags: - Well Planning Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created dashboard apps schema: $ref: '#/definitions/DashboardAppList' parameters: - in: path name: well_planning_dashboard_id_or_slug description: Well Planning Dashboard ID or slug required: true type: string - in: body name: dashboard_apps description: Dashboard Apps Bulk Create Payload required: true type: object schema: $ref: '#/definitions/WellPlanningDashboardAppV2BulkCreatePayload' /v2/well_planning_dashboards/{well_planning_dashboard_id_or_slug}/dashboard_apps/{id}: get: summary: Show dashboard app on a well planning dashboard tags: - Well Planning Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/DashboardApp' parameters: - in: path name: well_planning_dashboard_id_or_slug description: Well Planning Dashboard ID or slug required: true type: string - in: path name: id description: Dashboard App ID required: true type: integer format: int64 - in: query name: filter_asset_id description: Data filter's Asset ID required: false type: integer format: int64 patch: summary: Update dashboard app on a well planning dashboard tags: - Well Planning Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated dashboard app schema: $ref: '#/definitions/DashboardApp' parameters: - in: path name: well_planning_dashboard_id_or_slug description: Well Planning Dashboard ID or slug required: true type: string - in: path name: id description: Dashboard App ID required: true type: integer format: int64 - in: body name: dashboard_app description: Dashboard App Payload required: true type: object schema: $ref: '#/definitions/WellPlanningDashboardAppV2Payload' delete: summary: Delete dashboard app from a well planning dashboard tags: - Well Planning Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Dashboard app deleted parameters: - in: path name: well_planning_dashboard_id_or_slug description: Well Planning Dashboard ID or slug required: true type: string - in: path name: id description: Dashboard App ID required: true type: integer format: int64 /v1/data/{provider}/{dataset}: get: summary: Retrieve records of data from a dataset tags: - Data responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List data for a provider and dataset schema: type: array items: $ref: '#/definitions/Data' description: Retrieve an array of records from a dataset based on one or more filters. Ensure that all values in the querystring are URL encoded to prevent misinterpretation, especially "#" and other symbols. parameters: - in: path name: provider type: string example: corva description: Provider value for the company that owns the data dataset. Usually "corva". - in: path name: dataset type: string example: wits description: Name of the dataset to retrieve data for. - in: query name: company_id type: integer description: Returns data only for the company with this ID. Otherwise, returns data for the current user or API key company. Only applies to Corva company admins. - in: query name: asset_id type: integer description: Returns data only for the asset with this ID. Otherwise, returns all data. - in: query name: query type: string description: 'Value for any additional data filters. Accepts fields in the format {field#operator#value}. Ensure the value is URL encoded to avoid misinterpretation. Valid operators are gt, gte, lt, lte, eq, ne, in, exists and elemmatch. Multiple fields can be chained with "AND". Example: {state#eq#InSlips}AND{timestamp#gte#1577836800}AND{elements#elemmatch#{"key": "value"}}' - in: query name: where type: string description: Use a MongoDB $where query. This allows calculations on each data record to filter by. Do not include `function()`. - in: query name: map type: string description: Use a MongoDB $map aggregation. See MongoDB documentation for more detail. - in: query name: reduce type: string description: Use a MongoDB $reduce aggregation. See MongoDB documentation for more detail. - in: query name: aggregate type: string description: MongoDB aggregation pipeline. See MongoDB documentation for more details about pipelines and how to construct them. - in: query name: distinct type: string description: Field name to perform a MongoDB distinct grouping on. See MongoDB documentation for more details about pipelines and how to construct them. - in: query name: sort type: string description: 'Value for database sorting. Takes one or more fields in a key/value map. Example: {state: 1, timestamp: -1}' - in: query name: limit type: integer description: 'How many data items to return. Best practice is to limit to a small dataset (usually ~100 records) and paginate to reduce server load and bandwidth. Default: 1. Maximum: 10000.' - in: query name: fields type: string description: A comma separated list of fields to return from the queried document. - in: query name: projection type: string description: Use a MongoDB projection. If this field is provided, "fields" is ignored. - in: query name: filter_inaccessible_assets type: string description: Filters inaccessible assets from your query or aggregate instead of returning an error message. Set any value to turn filtering on. - in: query name: count type: string description: Returns count of documents after filters applied. "count=true" can be passed to receive count response post: summary: Save one or more records of data to a dataset tags: - Data responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Return saved data statistics schema: inserted_count: integer updated_count: integer failed_count: integer ids: array messages: array description: Create data by inserting it a dataset. The provider and dataset must exist in order for data to be saved, although no error will be raised if either is not found. This endpoint accepts an array of records, and performs an upsert for each record that has a _id value. parameters: - in: path name: provider type: string example: corva description: Provider value for the company that owns the data dataset. Usually "corva". - in: path name: dataset type: string example: wits description: Name of the dataset to retrieve data for. - in: body name: _id type: string example: 5e3085c5cdc1ec37e5635a8c description: Mongo ObjectID to associate with the data record. Automatically generated if not provided. If provided and it matches an existing record, that record is overwritten. If it does not match an existing record, a new record is inserted. - in: body name: company_id type: integer example: 9243 description: Company ID to save data for. Defaults to the company_id of the current user or API key. Only applies to Corva company admins. - in: body name: asset_id type: integer example: 28283 description: Asset ID to save data for. - in: body name: timestamp type: integer example: 1580251823 description: Epoch timestamp to associate with the data record. Sets to the current timestamp if not provided. - in: body name: data type: object description: Stores all custom data to be associated with a record. Can be deeply nested and should conform to the expected schema for the dataset. delete: summary: Delete selected data records from a dataset tags: - Data responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Return deleted count schema: deleted_count: integer description: Delete multiple records from a dataset, based on data filters that are provided. Use caution and ensure that your filters are not too broad, or you may end up unintentionally deleting data. parameters: - in: path name: provider type: string example: corva description: Provider value for the company that owns the data dataset. Usually "corva". - in: path name: dataset type: string example: wits description: Name of the dataset to retrieve data for. - in: query name: query type: string description: 'Value for any data filters. Accepts fields in the format {field#operator#value}. Ensure the value is URL encoded to avoid misinterpretation. Valid operators are gt, gte, lt, lte, eq, ne, and in. Multiple fields can be chained with "AND". Example: {state#eq#InSlips}AND{timestamp#gte#1577836800}' /v1/data/{provider}/{dataset}/{id}: get: summary: Retrieve a single data record from a dataset tags: - Data responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Show data record schema: $ref: '#/definitions/Data' parameters: - in: path name: provider type: string example: corva description: Provider value for the company that owns the data dataset. Usually "corva". - in: path name: dataset type: string example: wits description: Name of the dataset to retrieve data for. - in: path name: id type: string example: 5e3085c5cdc1ec37e5635a8c description: Unique ID for the data record - in: query name: fields type: string description: A comma separated list of fields to return from the queried document. - in: query name: projection type: string description: Use a MongoDB projection. If this field is provided, "fields" is ignored. patch: summary: Update fields in a data record in a dataset tags: - Data responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Return data record schema: $ref: '#/definitions/Data' description: Update metadata and fields in a data record. This will update existing fields and insert any new fields that are found, but will leave all existing fields alone parameters: - in: path name: provider type: string example: corva description: Provider value for the company that owns the data dataset. Usually "corva". - in: path name: dataset type: string example: wits description: Name of the dataset to retrieve data for. - in: path name: id type: string example: 5e3085c5cdc1ec37e5635a8c description: Mongo ObjectID to associate with the data record. Automatically generated if not provided. If provided and it matches an existing record, that record is overwritten. If it does not match an existing record, a new record is inserted. - in: body name: data type: object description: Data to be updated within the data record. Can be deeply nested and should conform to the expected schema for the dataset. put: summary: Replace data record in a dataset tags: - Data responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Return saved data statistics schema: $ref: '#/definitions/Data' description: Replace fields in a data record. This will completely delete any existing fields and replace them with the new data record that is passed in. parameters: - in: path name: provider type: string example: corva description: Provider value for the company that owns the data dataset. Usually "corva". - in: path name: dataset type: string example: wits description: Name of the dataset to retrieve data for. - in: path name: id type: string example: 5e3085c5cdc1ec37e5635a8c description: Mongo ObjectID to associate with the data record. Automatically generated if not provided. If provided and it matches an existing record, that record is overwritten. If it does not match an existing record, a new record is inserted. - in: body name: data type: object description: Data to replace the existing data record. Can be deeply nested and should conform to the expected schema for the dataset. delete: summary: Delete a single data record from a dataset tags: - Data responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Deletion status parameters: - in: path name: provider type: string example: corva description: Provider value for the company that owns the data dataset. Usually "corva". - in: path name: dataset type: string example: wits description: Name of the dataset to retrieve data for. - in: path name: id type: string example: 5e3085c5cdc1ec37e5635a8c description: Unique data record identifier for the record to be deleted. /v2/users/{user_id}/dashboards/{dashboard_id}/data_filters: get: summary: Get data filters for dashboard tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response schema: $ref: '#/definitions/DataFilterList' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: dashboard_id description: Dashboard ID required: true type: integer format: int64 post: summary: Create a data filter tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: successful response schema: $ref: '#/definitions/DataFilter' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: dashboard_id description: Dashboard ID required: true type: integer format: int64 - in: body name: data_filter required: true type: object schema: $ref: '#/definitions/DataFilterPayload' /v2/users/{user_id}/dashboards/{dashboard_id}/data_filters#2: post: summary: Update multiple data filters tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: successful response schema: $ref: '#/definitions/DataFilterList' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: dashboard_id description: Dashboard ID required: true type: integer format: int64 - in: body name: data_filter required: true type: array items: $ref: '#/definitions/DataFilterPayload2' /v2/users/{user_id}/dashboards/{dashboard_id}/data_filters/{id}: get: summary: Show data filter tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/DataFilter' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: dashboard_id description: Dashboard ID required: true type: integer format: int64 - in: path name: id description: Data Filter ID required: true type: integer format: int64 patch: summary: Update a data filter tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated data filter schema: $ref: '#/definitions/DataFilter' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: dashboard_id description: Dashboard ID required: true type: integer format: int64 - in: path name: id description: Dashboard App ID required: true type: integer format: int64 - in: body name: data_filter required: true type: object schema: $ref: '#/definitions/DataFilterPayload' delete: summary: Delete a data filter tags: - Dashboards responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Data filter deleted parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: dashboard_id description: Dashboard ID required: true type: integer format: int64 - in: path name: id description: Dashboard App ID required: true type: integer format: int64 /v1/file: post: summary: Upload a file as form data tags: - Files responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response schema: $ref: '#/definitions/File' '400': description: Invalid file schema: example: code: 400 message: 'Unsupported file type: .exe' parameters: - in: formData name: file description: A file to upload required: true type: file - in: formData name: s3_key description: AWS S3 file identifier required: true type: string put: summary: Update a file by S3 key tags: - Files responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response schema: $ref: '#/definitions/File' '400': description: Invalid file schema: example: code: 400 message: 'Unsupported file type: .exe' parameters: - in: formData name: file description: A file to upload required: true type: file - in: formData name: s3_key description: AWS S3 file identifier required: true type: string /v1/file/sign: get: summary: Returns a signed URL tags: - Files parameters: - in: query name: file_name description: A file name required: true type: string - in: query name: asset_id description: Asset ID required: false type: int64 responses: '200': description: Successful response schema: $ref: '#/definitions/SignedFile' /v1/file/preview: get: summary: Redirects user to the file via a generated download link tags: - Files parameters: - in: query name: file_name description: A file name required: true type: string - in: query name: internal description: When 'true', generates signed URL using internal storage endpoint (for same-network access). Otherwise uses external storage. required: false type: string enum: - 'true' - 'false' responses: '302': description: Redirect to direct S3 link /v1/file/download: get: summary: Downloads a file tags: - Files parameters: - in: query name: file_name description: A file name required: true type: string - in: query name: internal description: When 'true', generates signed URL using internal storage endpoint (for same-network access). Otherwise uses external storage. required: false type: string enum: - 'true' - 'false' responses: '200': description: Fetchs a file from S3 link and gets it downloded /v1/file/download_link: get: summary: Returns a URL where the file can be downloaded tags: - Files parameters: - in: query name: file_name description: A file name required: true type: string - in: query name: response_content_disposition enum: - inline - attachment description: Desired content disposition required: false type: string - in: query name: response_content_type description: Desired content type required: false type: string - in: query name: internal description: When 'true', generates signed URL using internal storage endpoint (for same-network access). Otherwise uses external storage. required: false type: string enum: - 'true' - 'false' responses: '200': description: Returns the download URL /v1/file/delete: delete: summary: Deletes a file tags: - Files parameters: - in: query name: file_name description: A file name required: true type: string responses: '200': description: File deleted /v2/files: delete: summary: Deletes a file tags: - Files parameters: - in: query name: id description: Folder or File _id required: false type: string - in: query name: file_name description: A file name required: true type: string - in: query name: segment description: Segment for collection required: false type: string enum: - drilling - completion - intervention responses: '200': type: object description: File deleted schema: properties: status: type: string example: status: Deleted '400': type: object description: Failure response schema: properties: code: type: integer message: type: string example: code: 400 message: Missing id or file_name param '404': type: object description: Not found schema: properties: code: type: integer message: type: string example: code: 404 message: File not found /v2/files/url: get: summary: Get signed URL for a file tags: - Files responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Forbidden schema: properties: code: type: integer message: type: string example: code: 403 message: Forbidden '404': description: Not found schema: properties: code: type: integer message: type: string example: code: 404 message: File not found '200': type: object description: File url schema: properties: url: type: string example: url: https://s3.amazonaws.com/report_34534534.pdf?X-Amz-Expires=900&X-Amz-Date=20170413T143454Z '400': type: object description: Failure response schema: properties: code: type: integer message: type: string example: code: 400 message: Missing id or file_name param parameters: - in: query name: id description: ID of the file type: string - in: query name: file_name description: Name of the file type: string /v2/groups: get: summary: List Groups tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/GroupList' parameters: - in: query name: users_search description: Search by users type: string - in: query name: search description: Search by Group type: string post: summary: Create a Group tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Group schema: $ref: '#/definitions/Group' parameters: - in: body name: group description: Group Payload required: true type: object schema: $ref: '#/definitions/GroupCreatePayload' /v2/groups/{id}: get: summary: Show Group tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/Group' parameters: - in: path name: id description: Group ID required: true type: integer format: int64 - in: query name: users_search description: Search by users inside a Group type: string patch: summary: Update a Group tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Group schema: $ref: '#/definitions/Group' parameters: - in: path name: id description: Group ID required: true type: integer format: int64 - in: body name: group description: Group Payload required: true type: object schema: $ref: '#/definitions/GroupUpdatePayload' delete: summary: Delete a Group tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Group deleted parameters: - in: path name: id description: Group ID required: true type: integer format: int64 /v2/groups/{id}/users: get: summary: Show Users for a given Group tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/GroupUser' parameters: - in: path name: id description: Group ID required: true type: integer format: int64 - in: query name: per_page description: Number of items to list per page type: integer - in: query name: page description: Current page of items type: integer - in: query name: sort description: A field to sort by type: string enum: - first_name - created_at - updated_at default: first_name - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc - in: query name: search description: Search by first_name, last_name, email type: string /v2/users/{user_id}/groups: get: summary: List Groups for User tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Current Groups schema: $ref: '#/definitions/GroupConnectionList' post: summary: Add Group to User tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Current Groups schema: $ref: '#/definitions/GroupConnectionList' parameters: - in: body name: group_id description: Group ID required: false type: object schema: $ref: '#/definitions/GroupsUsersPayload' /v2/users/{user_id}/groups/{id}: delete: summary: Remove a Group from User tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Group Removed parameters: - in: path name: id description: Group ID required: true type: integer format: int64 /v2/groups/{group_id}/assign_users: post: summary: Assign users to group tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Group schema: $ref: '#/definitions/Group' parameters: - in: path name: group_id description: Group ID required: true type: integer format: int64 - in: body name: user_ids description: List of User ID required: true type: array /v2/groups/copy_users: post: summary: Copy users from one group to another tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Group schema: $ref: '#/definitions/Group' parameters: - in: body name: from_group_id description: Id of a Group to copy users from required: true type: integer - in: body name: to_group_id description: Id of a Group to copy users to required: true type: integer /v2/integration/wellview/resolve: post: summary: Resolve an asset based on an array of lookups tags: - WellView responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Show asset schema: $ref: '#/definitions/Asset' parameters: - in: body name: lookups type: array description: 'Array of values such as Asset ID, API number, or well name. First successful match wins. Example: [31, "My Well", "42-501-20130"]' items: type: string /v2/integration/wellview/ingest: post: summary: Send data into Corva for processing tags: - WellView responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Send the data for processing schema: items: $ref: '#/definitions/WellViewIngest' parameters: - in: body type: array description: JSON-formatted data sent as the entire request body in array format items: $ref: '#/definitions/WellViewIngest' /v2/integration/wellview/bha: get: summary: Retrieve Corva BHA/Drillstring data tags: - WellView responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List all data for the BHA dataset schema: type: array items: $ref: '#/definitions/WellViewBHA' parameters: - in: query name: asset_id type: integer description: Corva Asset ID - in: query name: query type: string description: Open-ended data query, such as {timestamp#gte#1577836800}. Be sure to URL encode. - in: query name: sort type: string description: Field to sort by, and the direction to sort in (asc is 1, desc is -1) default: '{timestamp: -1}' - in: query name: limit type: integer description: Number of records to retrieve default: 1 /v2/integration/wellview/frac: get: summary: Retrieve Corva Fracking data tags: - WellView responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List all data for the Fracking dataset schema: type: array items: $ref: '#/definitions/WellViewFrac' parameters: - in: query name: asset_id type: integer description: Corva Asset ID - in: query name: query type: string description: Open-ended data query, such as {timestamp#gte#1577836800}. Be sure to URL encode. - in: query name: sort type: string description: Field to sort by, and the direction to sort in (asc is 1, desc is -1) default: '{timestamp: -1}' - in: query name: limit type: integer description: Number of records to retrieve default: 1 /v2/integration/wellview/frac_stage_design: get: summary: Retrieve Corva Frac Stage Design data tags: - WellView responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List all data for the Frac Stage Design dataset schema: type: array items: $ref: '#/definitions/WellViewFracStageDesign' parameters: - in: query name: asset_id type: integer description: Corva Asset ID - in: query name: query type: string description: Open-ended data query, such as {timestamp#gte#1577836800}. Be sure to URL encode. - in: query name: sort type: string description: Field to sort by, and the direction to sort in (asc is 1, desc is -1) default: '{timestamp: -1}' - in: query name: limit type: integer description: Number of records to retrieve default: 1 /v2/integration/wellview/frac_stage_summary: get: summary: Retrieve Corva Frac Stage Summary data tags: - WellView responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List all data for the Frac Stage Summary dataset schema: type: array items: $ref: '#/definitions/WellViewFracStageSummary' parameters: - in: query name: asset_id type: integer description: Corva Asset ID - in: query name: query type: string description: Open-ended data query, such as {timestamp#gte#1577836800}. Be sure to URL encode. - in: query name: sort type: string description: Field to sort by, and the direction to sort in (asc is 1, desc is -1) default: '{timestamp: -1}' - in: query name: limit type: integer description: Number of records to retrieve default: 1 /v2/integration/wellview/frac_stage_summary_calculated: get: summary: Retrieve Corva Frac Stage Summary Calculated data tags: - WellView responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List all data for the Frac Stage Summary Calculated dataset schema: type: array items: $ref: '#/definitions/WellViewFracStageSummaryCalculated' parameters: - in: query name: asset_id type: integer description: Corva Asset ID - in: query name: query type: string description: Open-ended data query, such as {timestamp#gte#1577836800}. Be sure to URL encode. - in: query name: sort type: string description: Field to sort by, and the direction to sort in (asc is 1, desc is -1) default: '{timestamp: -1}' - in: query name: limit type: integer description: Number of records to retrieve default: 1 /v2/integration/wellview/job_settings: get: summary: Retrieve Corva Job Settings data tags: - WellView responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List all data for the Job Settings dataset schema: type: array items: $ref: '#/definitions/WellViewJobSettings' parameters: - in: query name: asset_id type: integer description: Corva Asset ID - in: query name: query type: string description: Open-ended data query, such as {timestamp#gte#1577836800}. Be sure to URL encode. - in: query name: sort type: string description: Field to sort by, and the direction to sort in (asc is 1, desc is -1) default: '{timestamp: -1}' - in: query name: limit type: integer description: Number of records to retrieve default: 1 /v2/integration/wellview/plugs: get: summary: Retrieve Corva Plugs data tags: - WellView responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List all data for the Plugs dataset schema: type: array items: $ref: '#/definitions/WellViewPlugs' parameters: - in: query name: asset_id type: integer description: Corva Asset ID - in: query name: query type: string description: Open-ended data query, such as {timestamp#gte#1577836800}. Be sure to URL encode. - in: query name: sort type: string description: Field to sort by, and the direction to sort in (asc is 1, desc is -1) default: '{timestamp: -1}' - in: query name: limit type: integer description: Number of records to retrieve default: 1 /v1/.well-known/jwks.json: get: summary: Get JWKS public keys tags: - Users description: Returns JSON Web Key Set (JWKS) containing public keys for verifying RS256-signed JWT tokens. This is a public endpoint that does not require authentication. External services can use these keys to verify tokens issued by this API. Returns an empty keys array if JWKS is not configured. operationId: getJwks produces: - application/json responses: '200': description: JWKS public key set schema: $ref: '#/definitions/JwksResponse' /message_producer: post: summary: Produce messages for sent data tags: - MessageProducer responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response parameters: - in: body description: Data for message production required: true type: object schema: $ref: '#/definitions/MessageProducerPayload' /v1/notifications: get: summary: List notifications for current user tags: - Notifications responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: type: array items: $ref: '#/definitions/Notification' parameters: - in: query name: start description: Search by start time as a Unix timestamp type: integer format: timestamp - in: query name: end description: Search by end time as a Unix timestamp type: integer format: timestamp - in: query name: trigger_type description: Filter by one or more trigger types type: array - in: query name: notification_type description: 'Filter by one or more notification types: banner, desktop, sms, mobile, and email' type: array - in: query name: level description: 'Filter by one or more notification levels: info, warning, and critical' type: array - in: query name: acknowledged description: Filter by whether the notification has been acknowledged type: boolean - in: query name: sort description: Field to sort by type: string enum: - created_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc /v1/notifications/acknowledge: post: summary: Acknowledge multiple notifications tags: - Notifications responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: properties: status: type: string example: Ok parameters: - in: body name: ids description: Notification IDs required: true type: array items: type: string /v1/notifications/acknowledge_all: post: summary: Acknowledge all notifications for current user tags: - Notifications responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: properties: status: type: string example: Ok /v1/notifications/{id}/acknowledge: post: summary: List notifications for current user tags: - Notifications responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: properties: status: type: string example: Ok parameters: - in: path name: id description: Notification ID required: true type: integer format: int64 /v1/notifications/{id}: get: summary: Show notification tags: - Notifications responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/Notification' parameters: - in: path name: id description: Notification ID required: true type: integer format: int64 patch: summary: Update notification tags: - Notifications responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/Notification' parameters: - in: path name: id description: Notification ID required: true type: integer format: int64 - in: body name: notification description: Notification Payload required: true type: object schema: $ref: '#/definitions/NotificationPayload' /v1/notifications/count/unread: get: summary: Get the unread notification count for the current user tags: - Notifications responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Unread notifications count schema: $ref: '#/definitions/UnreadCount' parameters: - in: query name: trigger_type description: Filter by trigger type type: array /v2/notification_policies: get: summary: List Notification Policies tags: - NotificationPolicies responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List of notification policies accessible to the current user schema: $ref: '#/definitions/NotificationPolicyList' parameters: - in: query name: page description: Page number type: integer required: false - in: query name: per_page description: Items per page type: integer required: false post: summary: Create Notification Policy tags: - NotificationPolicies responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: A scope row references a record the user cannot read '404': description: A scope row references a record that does not exist '200': description: Created notification policy schema: $ref: '#/definitions/NotificationPolicySingle' '400': description: Validation error parameters: - in: body name: body required: true schema: $ref: '#/definitions/NotificationPolicyPayload' /v2/notification_policies/{id}: get: summary: Get Notification Policy tags: - NotificationPolicies responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Notification policy details schema: $ref: '#/definitions/NotificationPolicySingle' parameters: - in: path name: id required: true type: integer format: int64 patch: summary: Update Notification Policy tags: - NotificationPolicies responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: A scope row references a record the user cannot read '404': description: A scope row references a record that does not exist '200': description: Updated notification policy schema: $ref: '#/definitions/NotificationPolicySingle' '400': description: Validation error parameters: - in: path name: id required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/NotificationPolicyPayload' delete: summary: Delete Notification Policy tags: - NotificationPolicies responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Deleted parameters: - in: path name: id required: true type: integer format: int64 /v2/security_policies: get: summary: List Security Policies tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/SecurityPolicyList' /v2/security_policies/{id}: get: summary: Show Security Policy tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/SecurityPolicy' parameters: - in: path name: id description: Security Policy ID required: true type: integer format: int64 /v2/companies/{company_id}/security_policies: get: summary: List Company Security Policies tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/CompanySecurityPolicyList' parameters: - in: path name: company_id description: Company ID required: true type: integer format: int64 post: summary: Create a Company Security Policy tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Company Security Policy schema: $ref: '#/definitions/CompanySecurityPolicy' parameters: - in: path name: company_id description: Company ID required: true type: integer format: int64 - in: body name: company_security_policy description: Company Security Policy Payload required: true type: object schema: $ref: '#/definitions/CompanySecurityPolicyCreatePayload' /v2/companies/{company_id}/security_policies/{id}: get: summary: Show Company Security Policy tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/CompanySecurityPolicy' parameters: - in: path name: company_id description: Company ID required: true type: integer format: int64 - in: path name: id description: Company Security Policy ID required: true type: integer format: int64 patch: summary: Update a Company Security Policy tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Company Security Policy schema: $ref: '#/definitions/CompanySecurityPolicy' parameters: - in: path name: company_id description: Company ID required: true type: integer format: int64 - in: path name: id description: Company Security Policy ID required: true type: integer format: int64 - in: body name: company_security_policy description: Company Security Policy Payload required: true type: object schema: $ref: '#/definitions/CompanySecurityPolicyUpdatePayload' delete: summary: Delete a Company Security Policy tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Company Security Policy deleted parameters: - in: path name: company_id description: Company ID required: true type: integer format: int64 - in: path name: id description: Company Security Policy ID required: true type: integer format: int64 /v2/companies/{company_id}/authentication_schema_contexts: get: summary: List authentication-schema contexts touching a company description: Returns every `AuthenticationSchemaContext` row that resolves to the given company — rows where `context = Company(company_id)`, rows where `context` is one of the company's CompanyDomains, and rows where `context` is one of the company's Users. Sorted Company → CompanyDomain → User; per-type counts in `meta.counts`. tags: - Security responses: '401': description: Missing or invalid authentication '403': description: Caller cannot read the requested company '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Authentication-schema contexts grouped by type schema: $ref: '#/definitions/AuthenticationSchemaContextV2List' parameters: - in: path name: company_id description: Company ID required: true type: integer format: int64 /v2/users/{user_id}/permissions: get: summary: List Permissions tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/PermissionList' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: query name: category description: Filter permissions by category type: string post: summary: Create a Permission tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Permission schema: $ref: '#/definitions/Permission' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: body name: permission description: Permission Payload required: true type: object schema: $ref: '#/definitions/PermissionPayload' /v2/users/{user_id}/permissions/{id}: get: summary: Show Permission tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/Permission' parameters: - in: path name: id description: Permission ID required: true type: integer format: int64 - in: path name: user_id description: User ID required: true type: integer format: int64 patch: summary: Update a Permission tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Permission schema: $ref: '#/definitions/Permission' parameters: - in: path name: id description: Permission ID required: true type: integer format: int64 - in: path name: user_id description: User ID required: true type: integer format: int64 - in: body name: permission description: Permission Payload required: true type: object schema: $ref: '#/definitions/PermissionPayload' delete: summary: Delete a Permission tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Permission deleted parameters: - in: path name: id description: Permission ID required: true type: integer format: int64 - in: path name: user_id description: User ID required: true type: integer format: int64 /v2/users/{user_id}/permissions/bulk_create: post: summary: Create Multiple Permissions with list of abilities tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/PermissionList' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: body name: permission description: Permission Payload required: true type: object schema: $ref: '#/definitions/BulkPermissionPayload' /v2/groups/{user_id}/permissions/bulk_destroy: delete: summary: Delete Multiple Permissions tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Permissions deleted parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: query name: ids required: true description: List of permission IDs to delete items: type: integer /v2/groups/{group_id}/permissions: get: summary: List Permissions tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/PermissionList' parameters: - in: path name: group_id description: Group ID required: true type: integer format: int64 - in: query name: category description: Filter permissions by category type: string post: summary: Create a Permission tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Permission schema: $ref: '#/definitions/Permission' parameters: - in: path name: group_id description: Group ID required: true type: integer format: int64 - in: body name: permission description: Permission Payload required: true type: object schema: $ref: '#/definitions/PermissionPayload' /v2/groups/{group_id}/permissions/{id}: get: summary: Show Permission tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/PermissionOnGroup' parameters: - in: path name: id description: Permission ID required: true type: integer format: int64 - in: path name: group_id description: Group ID required: true type: integer format: int64 patch: summary: Update a Permission tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Permission schema: $ref: '#/definitions/PermissionOnGroup' parameters: - in: path name: id description: Permission ID required: true type: integer format: int64 - in: path name: group_id description: Group ID required: true type: integer format: int64 - in: body name: permission description: Permission Payload required: true type: object schema: $ref: '#/definitions/PermissionPayload' delete: summary: Delete a Permission tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Permission deleted parameters: - in: path name: id description: Permission ID required: true type: integer format: int64 - in: path name: group_id description: Group ID required: true type: integer format: int64 /v2/groups/{group_id}/permissions/grouped: get: summary: List Grouped Permissions tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/PermissionGroupList' parameters: - in: path name: group_id description: Group ID required: true type: integer format: int64 - in: query name: category description: Filter permissions by category type: string - in: query name: category description: Filter permissions by category type: string - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer /v2/users/{user_id}/permissions/grouped: get: summary: List Grouped Permissions tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/PermissionGroupList' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: query name: category description: Filter permissions by category type: string - in: query name: category description: Filter permissions by category type: string - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer /v2/groups/{group_id}/permissions/bulk_create: post: summary: Create Multiple Permissions with list of abilities tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/PermissionList' parameters: - in: path name: group_id description: Group ID required: true type: integer format: int64 - in: body name: permission description: Permission Payload required: true type: object schema: $ref: '#/definitions/BulkPermissionPayload' /v2/groups/{group_id}/permissions/bulk_destroy: delete: summary: Delete Multiple Permissions tags: - Security responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Permissions deleted parameters: - in: path name: group_id description: Group ID required: true type: integer format: int64 - in: query name: ids required: true description: List of permission IDs to delete items: type: integer /v2/picklists: get: summary: List picklists tags: - Picklists responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List all picklists visible by the current role schema: type: array items: $ref: '#/definitions/Picklist' post: summary: Create a picklist tags: - Picklists responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created picklist schema: $ref: '#/definitions/Picklist' parameters: - in: body name: picklist description: Picklist Payload required: true type: object schema: $ref: '#/definitions/PicklistPayload' /v2/picklists/{name}: get: summary: Show a single picklist tags: - Picklists responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Show the picklist schema: $ref: '#/definitions/Picklist' parameters: - in: path name: name description: Picklist name identifier type: string patch: summary: Update picklist tags: - Picklists responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated picklist schema: $ref: '#/definitions/Picklist' parameters: - in: body name: picklist description: Picklist Payload required: true type: object schema: $ref: '#/definitions/PicklistUpdatePayload' /v2/picklists/{name}/items: post: summary: Create a picklist item tags: - Picklists responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created picklist item schema: $ref: '#/definitions/PicklistItem' parameters: - in: body name: item description: PicklistItem Payload required: true type: object schema: $ref: '#/definitions/PicklistItemPayload' /v2/picklists/{name}/items/{id}: delete: summary: Delete a picklist item tags: - Picklists responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Item deleted parameters: - in: path name: id description: Picklist ID type: integer /v2/tasks: post: summary: Create a new task tags: - Tasks responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Show the created task schema: $ref: '#/definitions/Task' parameters: - in: body name: task description: Task Configuration required: true type: object schema: $ref: '#/definitions/TaskConfiguration' get: summary: List tasks for asset and application tags: - Tasks responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List all queried tasks schema: type: array items: $ref: '#/definitions/Task' parameters: - in: query name: asset_id description: Asset ID required: true type: integer - in: query name: app_key description: App Key for the background app to execute required: true type: string - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: A field to sort by type: string enum: - state - created_at - updated_at default: created_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc - in: query name: state description: Filter by task's state type: string enum: - running - failed - succeeded - in: query name: output_type description: Filter by outputType property presence type: boolean - in: query name: include_performer description: Include performer User in response type: string enum: - 'true' /v2/tasks/{id}: get: summary: Show Task tags: - Tasks responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/TaskShow' parameters: - in: path name: id description: Task ID required: true type: string format: uuid patch: summary: Update payload of a task. This endpoint can be used with an api key on a running task tags: - Tasks responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' parameters: - in: path name: id description: Task ID required: true type: string - in: body name: task description: Task Configuration required: true type: object schema: properties: payload: type: object example: payload: attribute: value /v2/tasks/{id}/{status}: put: summary: Update task status tags: - Tasks responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Show the task schema: $ref: '#/definitions/Task' parameters: - in: path name: id description: Task ID required: true type: string - in: query name: status description: Status required: true type: string enum: success failure - in: body name: task description: Payload type: object schema: $ref: '#/definitions/TaskPayload' /v2/task_schedules: get: summary: List Task Schedules tags: - TaskSchedules responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Task schedules accessible to the current user schema: $ref: '#/definitions/TaskScheduleList' '400': description: Invalid filter or sort parameter schema: $ref: '#/definitions/TaskScheduleBadRequest' description: Returns schedules accessible to the authenticated user. Results are company-scoped by authorization. parameters: - in: query name: company_id type: integer format: int64 description: Filter by company ID; does not expand the caller's authorized scope - in: query name: app_id type: integer format: int64 description: Filter by app ID - in: query name: status type: string enum: - active - paused - disabled description: Filter by exact schedule status - in: query name: owner_type type: string enum: - User - Company description: Filter by owner type; owner_id must also be supplied - in: query name: owner_id type: integer format: int64 description: Filter by owner ID; owner_type must also be supplied. Malformed or incomplete filters return 400; a well-formed unknown owner returns an empty list. - in: query name: page type: integer description: Page number - in: query name: per_page type: integer description: Number of items per page - in: query name: sort type: string description: Comma-separated created_at, updated_at, next_run_at, name, or status fields; prefix a field with - for descending or + for ascending - in: query name: order type: string enum: - asc - desc default: asc description: Default direction for sort fields without a prefix post: summary: Create Task Schedule tags: - TaskSchedules responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '201': description: Created task schedule schema: $ref: '#/definitions/TaskScheduleSingle' '400': description: Validation error, invalid cron/timezone/app/asset, app not opted in, payload too large, or owner schedule cap reached schema: $ref: '#/definitions/TaskScheduleBadRequest' description: Creates a schedule for a task app that explicitly supports scheduling. User-session authentication is required. Regular users can create their own schedules; company administrators may create company-owned schedules or schedules for users in companies they can manage. parameters: - in: body name: body required: true description: Task schedule payload schema: $ref: '#/definitions/TaskScheduleCreatePayload' /v2/task_schedules/{id}: get: summary: Get Task Schedule tags: - TaskSchedules responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Task schedule details schema: $ref: '#/definitions/TaskScheduleSingle' parameters: - in: path name: id required: true type: integer format: int64 description: Task schedule ID patch: summary: Partially Update Task Schedule tags: - TaskSchedules responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated task schedule schema: $ref: '#/definitions/TaskScheduleSingle' '400': description: Validation error, invalid cron/timezone/asset, app not opted in, or payload too large schema: $ref: '#/definitions/TaskScheduleBadRequest' description: Updates mutable schedule fields. Immutable ownership, company, creator, and app fields are rejected with 400. parameters: - in: path name: id required: true type: integer format: int64 description: Task schedule ID - in: body name: body required: true description: Mutable task schedule fields schema: $ref: '#/definitions/TaskScheduleUpdatePayload' put: summary: Update Task Schedule tags: - TaskSchedules responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated task schedule schema: $ref: '#/definitions/TaskScheduleSingle' '400': description: Validation error, invalid cron/timezone/asset, app not opted in, or payload too large schema: $ref: '#/definitions/TaskScheduleBadRequest' description: Uses the same partial-update semantics as PATCH. Immutable ownership, company, creator, and app fields are rejected with 400. parameters: - in: path name: id required: true type: integer format: int64 description: Task schedule ID - in: body name: body required: true description: Mutable task schedule fields schema: $ref: '#/definitions/TaskScheduleUpdatePayload' delete: summary: Delete Task Schedule tags: - TaskSchedules responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Deleted task schedule schema: $ref: '#/definitions/TaskScheduleDeleted' description: Deletes the schedule definition and any occurrence ledger rows. Existing tasks remain as history. parameters: - in: path name: id required: true type: integer format: int64 description: Task schedule ID /v1/user_token#1: post: summary: Obtain user token via email + password authentication tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: New JSON Web Token schema: $ref: '#/definitions/AuthenticationResponse' description: 'Authenticates user and returns JWT tokens. By default returns HMAC tokens (HS256). For JWKS tokens (RS256), include "X-Token-Format: jwks" header or add "token_format: jwks" to auth params.' parameters: - in: header name: X-Token-Format description: 'Token format (optional): "jwks" or "rsa" for RSA-signed tokens' type: string required: false - in: body name: credentials description: Authentication Data required: true type: object schema: $ref: '#/definitions/EmailPasswordAuthentication' /v1/user_token#2: post: summary: Obtain user token via Auth0 SSO authentication tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: New JSON Web Token schema: $ref: '#/definitions/AuthenticationResponse' description: 'Authenticates user via Auth0 and returns JWT tokens. By default returns HMAC tokens (HS256). For JWKS tokens (RS256), include "X-Token-Format: jwks" header or add "token_format: jwks" to auth params.' parameters: - in: header name: X-Token-Format description: 'Token format (optional): "jwks" or "rsa" for RSA-signed tokens' type: string required: false - in: body name: credentials description: Authentication Data required: true type: object schema: $ref: '#/definitions/Auth0Authentication' /v1/user_token#3: post: summary: Obtain user token via email + password authentication with multi-factor authentication tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: New JSON Web Token schema: $ref: '#/definitions/AuthenticationResponse' description: 'Authenticates user with MFA and returns JWT tokens. By default returns HMAC tokens (HS256). For JWKS tokens (RS256), include "X-Token-Format: jwks" header or add "token_format: jwks" to auth params.' parameters: - in: header name: X-Token-Format description: 'Token format (optional): "jwks" or "rsa" for RSA-signed tokens' type: string required: false - in: body name: credentials description: Authentication Data required: true type: object schema: $ref: '#/definitions/EmailPasswordMFAAuthentication' /v1/user_token#4: post: summary: Refresh jwt token using refresh_token tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: New JSON Web Token schema: $ref: '#/definitions/AuthenticationResponse' description: 'Refreshes JWT token using refresh_token. By default returns HMAC tokens (HS256). For JWKS tokens (RS256), include "X-Token-Format: jwks" header or add "token_format: jwks" to auth params.' parameters: - in: header name: X-Token-Format description: 'Token format (optional): "jwks" or "rsa" for RSA-signed tokens' type: string required: false - in: body name: credentials description: Authentication Data required: true type: object schema: $ref: '#/definitions/RefreshTokenAuthentication' /v1/sessions/verification/request: post: summary: Request verification code tags: - Users parameters: - in: body name: email description: User email type: string - in: body name: mode description: Mode type: string enum: - email - sms responses: '200': description: Verification code requested schema: type: object properties: identity_verification: type: object properties: required: type: boolean enabled: type: boolean available_modes: type: array items: type: string enabled_modes: type: array items: type: string triggered: type: boolean /v1/sessions/schemas: get: summary: Get available authentication schemas tags: - Users parameters: - in: query name: email description: User email type: string - in: query name: provider description: Provider name to filter by type: string - in: query name: connection description: Connection name to filter by type: string - in: query name: with_provider description: Include provider and respond with extended format or not. "false" by default. type: boolean responses: '200': description: List of available schemas schema: type: array items: $ref: '#/definitions/AuthenticationSchema' /v2/users: get: summary: List Users tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/UserList' post: summary: Create a User tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created User schema: $ref: '#/definitions/User' parameters: - in: body name: user description: User Payload required: true type: object schema: $ref: '#/definitions/UserPayloadCreate' /v2/users/{id}: get: summary: Show User tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/User' parameters: - in: path name: id description: User ID required: true type: integer format: int64 patch: summary: Update a User tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated User schema: $ref: '#/definitions/User' parameters: - in: path name: id description: User ID required: true type: integer format: int64 - in: body name: user description: User Payload required: true type: object schema: $ref: '#/definitions/UserPayloadUpdate' delete: summary: Delete a User tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: User deleted parameters: - in: path name: id description: User ID required: true type: integer format: int64 /v2/users/export: get: summary: Export users by company as csv tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: type: object parameters: - in: query name: company_id description: Company ID required: true type: integer format: int64 /v2/users/streaks: get: summary: User Streaks list tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/UserStreaksList' parameters: - in: query name: ids description: User IDs required: false type: string format: int64 - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: name,-updated_at' type: string enum: - created_at - updated_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc /v2/users/{user_id}/settings: get: summary: Get all settings for a user tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/UserSettings' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 post: summary: Add settings for a user tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated User schema: $ref: '#/definitions/UserSettingsUpdated' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: body name: user description: Settings Payload required: true type: object schema: $ref: '#/definitions/UserSettingsPayload' /v2/users/{user_id}/settings/{key}: get: summary: Get a setting with a key tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: example: key: value parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: key description: Settings key required: true type: string delete: summary: Delete a setting with a key tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/UserSettings' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: key description: Settings key required: true type: string /v2/users/{user_id}/identity_verifiers: get: summary: List Identity Verifiers for a User tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/IdentityVerifierList' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 post: summary: Create Identity Verifier for a User tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Identity Verifier schema: $ref: '#/definitions/IdentityVerifier' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: body name: mode description: Identity Verifier mode required: true type: string - in: body name: settings description: Identity Verifier Settings required: false type: object /v2/users/{user_id}/identity_verifiers/{mode}: get: summary: Show Specific Identity Verifier for a User tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Identity Verifier not found '200': type: object description: Successful response schema: $ref: '#/definitions/IdentityVerifier' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: mode description: Identity Verifier Mode required: true type: string patch: summary: Update Specific Identity Verifier for a User tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Identity Verifier not found '200': description: Updated Identity Verifier schema: $ref: '#/definitions/IdentityVerifier' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: mode description: Identity Verifier Mode required: true type: string - in: body name: settings description: Identity Verifier Settings required: false type: object delete: summary: Delete Specific Identity Verifier for a User tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Identity Verifier not found '200': description: Identity Verifier deleted parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: mode description: Identity Verifier Mode required: true type: string /v2/api_keys: get: summary: List accessible API keys tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/ApiKeyList' post: summary: Create an API key tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created API key schema: $ref: '#/definitions/ApiKey' parameters: - in: body name: api_key description: API Key Payload required: true type: object schema: $ref: '#/definitions/ApiKeyPayload' /v2/api_keys/current: get: summary: Show current API key tags: - Users description: Returns the API key used to authenticate the request responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/ApiKey' /v2/api_keys/{id}: get: summary: Show API key tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/ApiKey' parameters: - in: path name: id description: API key ID required: true type: integer format: int64 patch: summary: Update an API key tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated API key schema: $ref: '#/definitions/ApiKey' parameters: - in: path name: id description: API key ID required: true type: integer format: int64 - in: body name: api_key description: API Key Payload required: true type: object schema: $ref: '#/definitions/ApiKeyPayload' delete: summary: Delete an API key tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: API key deleted parameters: - in: path name: id description: API key ID required: true type: integer format: int64 /v2/api_keys/{id}/approve: post: summary: Approve and activate an API key tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Approved API key schema: $ref: '#/definitions/ApiKey' parameters: - in: path name: id description: API key ID required: true type: integer format: int64 /v2/api_keys/{id}/deactivate: post: summary: Deactivate an API key tags: - Users responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Deactivated API key schema: $ref: '#/definitions/ApiKey' parameters: - in: path name: id description: API key ID required: true type: integer format: int64 /v2/apps: get: summary: List accessible apps tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppList' parameters: - in: query name: provider description: Company Provider name items: type: string - in: query name: company_id description: Company ID items: type: integer - in: query name: type description: App type filter items: type: string - in: query name: segment description: App segment filter items: type: string - in: query name: app_category_id description: AppCategory filter items: type: integer - in: query name: category description: App category filter items: type: string - in: query name: label description: App label items: type: string - in: query name: owner description: Search by the user ID of the owner of the app items: type: integer - in: query name: installed description: App installed filter type: boolean - in: query name: search description: Search app by name/description/summary/app_key type: string - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: name,-updated_at' type: string enum: - name - app_type - category - created_at - updated_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc - in: query name: visibility description: Filter by visibility type: string enum: - public - company - developer - private - in: query name: marketing_level description: Filter by marketing level type: string enum: - normal - featured - promoted - in: query name: followable description: Filter by followable flag type: boolean - in: query name: app_key description: Filter by app key type: string - in: query name: platform description: Filter by platform type: string - in: query name: subscribed description: Filter by subscribed/unsubscribed type: boolean - in: query name: rig_fleet_id description: Filter by subscribed Rig type: integer - in: query name: frac_fleet_id description: Filter by subscribed Frac Fleet type: integer - in: query name: drillout_unit_id description: Filter by subscribed Drillout Unit type: integer - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: not_requested description: Filter by non-requested apps type: boolean - in: query name: not_purchased description: Filter by non-purchased apps type: boolean - in: query name: log_type description: Filter by log type. Can be "time", "depth" or "all" type: string - in: query name: full_lambda_name description: Find by full_lambda_name type: string - in: query name: followable_scheduler_type description: Filter by BE app scheduler type allowed to follow. Can be used only when followable - true. type: string - in: query name: show_depends_apps description: Show 2-tier depends_on_apps data type: boolean - in: query name: can_update description: Filter Apps by ability to update type: boolean - in: query name: exclude_categories description: Array of app categories to exclude apps from request f.e. settings type: array items: type: string - in: query name: app_ids description: Filter apps by ID type: array items: type: integer - in: query name: exclude_ids description: Filter out apps by ID type: array items: type: integer - in: query name: exclude_app_keys description: Array of app keys to exclude apps from request type: array items: type: string - in: query name: dataset_id description: Filter by Dataset ID type: integer - in: query name: author_id description: Filter by Author type: integer - in: query name: temporary description: Filter permanent/temporary type: boolean enum: - 'true' - 'false' post: summary: Create an app tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created app schema: $ref: '#/definitions/App' parameters: - in: body name: app description: App Payload required: true type: object schema: $ref: '#/definitions/CreateAppPayload' /v2/apps/{id}: get: summary: Show app tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/App' parameters: - in: path name: id description: App ID required: true type: integer format: int64 patch: summary: Update an App tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated App schema: $ref: '#/definitions/App' parameters: - in: path name: id description: App ID required: true type: integer format: int64 - in: body name: app description: App Payload required: true type: object schema: $ref: '#/definitions/UpdateAppPayload' delete: summary: Delete an App tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: App deleted parameters: - in: path name: id description: App ID required: true type: integer /v2/apps/{id}/install: post: summary: Install an app for your company tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/Installation' parameters: - in: path name: id description: App ID required: true type: integer format: int64 /v2/apps/{app_id}/packages: get: summary: See all packages for an app tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/PackageList' parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 /v2/apps/{app_key}/packages: get: summary: See all packages for an app tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/PackageList' parameters: - in: path name: app_key description: App Key required: true type: string /v2/apps/{app_id}/packages/upload: post: summary: Upload a new package for an app description: Upload a ZIP file for the Dev Center Packager to build and deploy tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/Package' parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: formData name: package description: Package ZIP file (field name must be package) required: true type: file - in: formData name: github_username description: Github username (optional) required: false type: string - in: formData name: prebuilt description: If true, indicates the uploaded zip is already built required: false type: boolean - in: formData name: source description: Request source (e.g. 'ui') required: false type: string consumes: - multipart/form-data /v2/apps/{app_id}/packages/{id}/download: get: summary: Download the latest package for an app description: Download a ZIP file with the latest app code tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '302': description: Fetches a file from S3 link and gets it downloaded parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: path name: id description: Package ID required: true type: integer format: int64 /v2/apps/{app_id}/packages/{id}: get: summary: Show a specific packages for an app tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/Package' parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: path name: id description: Package ID required: true type: integer format: int64 patch: summary: Update a package tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/Package' parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: path name: id description: Package ID required: true type: integer format: int64 - in: body name: package description: Package Payload required: true type: object schema: $ref: '#/definitions/UpdatePackagePayload' delete: summary: Delete a package tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Package Deleted parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: path name: id description: Package ID required: true type: integer format: int64 /v2/apps/{app_key}/packages/upload: post: summary: Upload a new package for an app description: Upload a ZIP file for the Dev Center Packager to build and deploy tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/Package' parameters: - in: path name: app_key description: App Key required: true type: string - in: formData name: package description: Package ZIP file (field name must be package) required: true type: file - in: formData name: github_username description: Github username (optional) required: false type: string - in: formData name: prebuilt description: If true, indicates the uploaded zip is already built required: false type: boolean - in: formData name: source description: Request source (e.g. 'ui') required: false type: string consumes: - multipart/form-data /v2/apps/app_categories: get: summary: List app categories tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response schema: $ref: '#/definitions/AppCategoryList' parameters: - in: query name: category description: Category of the AppCategories to fetch required: false type: string enum: - wellhub - dev-center - usage_analytics - in: query name: segment description: Filter by segment required: false type: string - in: query name: return_as_nested_tree description: Returns AppCategories and Apps in a nested array required: false type: boolean /v2/apps/categories: get: summary: List categories from look up table tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response schema: $ref: '#/definitions/AppCategoryLookUpList' /v2/apps/featured: get: summary: List featured & promoted apps tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response schema: $ref: '#/definitions/AppList' parameters: - in: query name: segment description: Filter by segment type: string - in: query name: marketing_level description: Filter by marketing level type: string enum: - featured - promoted /v2/apps/types: get: summary: List app types tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response schema: $ref: '#/definitions/AppTypeList' /v2/apps/{app_id}/secrets: post: summary: Create a secret parameter for an app tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: properties: status: type: string example: status: Created '422': type: object description: Failure response schema: properties: code: type: integer message: type: string example: code: 422 message: Parameter cannot include spaces parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: body description: Payload required: true type: object schema: $ref: '#/definitions/AppSecretParameterPayload' put: summary: Update secret parameter for an app tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: properties: status: type: string example: status: Updated '422': type: object description: Failure response schema: properties: code: type: integer message: type: string example: code: 422 message: Parameter 'MY_PRECIOUS_SECRET' does not exist parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: body description: Payload required: true type: object schema: $ref: '#/definitions/AppSecretParameterPayload' delete: summary: Delete secret parameter for an app tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: properties: status: type: string example: status: Deleted '422': type: object description: Failure response schema: properties: code: type: integer message: type: string example: code: 422 message: Key 'MY_PRECIOUS_SECRET' does not exist parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: query name: key description: Parameter name required: true type: string /v2/apps/{app_id}/app_datasets: get: summary: List app_datasets for app tags: - AppDatasets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppDatasetList' parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: query name: dataset_operation description: Filtering by dataset operation. Can be read or write. type: string post: summary: Create an AppDataset tags: - AppDatasets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created AppDataset schema: $ref: '#/definitions/AppDataset' parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: body name: app_dataset description: AppDataset Payload required: true type: object schema: $ref: '#/definitions/AppDatasetPayload' /v2/apps/{app_id}/app_datasets/{app_dataset_id}: delete: summary: Delete an AppDataset tags: - AppDatasets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: AppDataset deleted parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: path name: id description: AppDataset ID required: true type: integer /v2/apps/{app_id}/app_datasets/mark_followable: patch: summary: Mark an AppDataset as followable tags: - AppDatasets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: AppDataset marked as followable schema: properties: updated: type: string example: updated: true parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: query name: dataset_id description: Dataset ID required: true type: integer format: int64 /v2/apps/{app_id}/app_help_contents: get: summary: List AppHelpContents tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppHelpContentList' parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: query name: search description: Search by title, description required: false type: string - in: query name: status description: Filter by status required: false type: string enum: - draft - published post: summary: Create an AppHelpContent tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created AppHelpContent schema: $ref: '#/definitions/AppHelpContent' parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: body name: app_help_content description: AppHelpContent Payload required: true type: object schema: $ref: '#/definitions/AppHelpContentPayload' /v2/apps/{app_id}/app_help_contents/{id}: get: summary: Show AppHelpContent tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppHelpContent' parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: path name: id description: AppHelpContent ID required: true type: integer format: int64 patch: summary: Update an AppHelpContent tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated AppHelpContent schema: $ref: '#/definitions/AppHelpContent' parameters: - in: path name: id description: AppHelpContent ID required: true type: integer format: int64 - in: body name: app_help_content description: AppHelpContent Payload required: true type: object schema: $ref: '#/definitions/AppHelpContentPayload' delete: summary: Delete an AppHelpContent tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: AppHelpContent deleted parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: path name: id description: AppHelpContent ID required: true type: integer format: int64 /v2/apps/{app_id}/app_help_contents/signed_url: get: summary: Get signed_url for AppHelpContent tags: - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Forbidden schema: properties: code: type: integer message: type: string example: code: 403 message: Forbidden '404': description: Not Found schema: properties: code: type: integer message: type: string example: code: 404 message: App was not found '200': type: object description: Successful response schema: properties: signed_url: type: string file_name: type: string display_name: type: string bucket: type: string cdn_url: type: string example: signed_url: https://s3.amazonaws.com/cdn.corva.ai/provider_9/1649168990/foobar.jpg?X-Amz-Expires=900 file_name: provider/video.mp4 display_name: video.mp4 bucket: cdn.bucket cdn_url: https://qwerty.cloudfront.net '400': type: object description: Failure response schema: properties: code: type: integer message: type: string example: code: 400 message: Missing file_name param parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: query name: file_name description: AppHelpContent file_name of attachment required: true type: string - in: query name: prefix description: AppHelpContent prefix of attachment required: false type: string /v2/apps/{app_id}/app_logs: get: summary: List log streams for app tags: - AppLogs responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppLogStreamList' parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: query name: next_token description: The token for the next set of items to return type: string /v2/apps/{app_id}/app_logs/events/{log_stream}: get: summary: List events for log stream tags: - AppLogs responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppLogStreamEventList' parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: path name: log_stream description: Log stream name required: true type: string - in: query name: start_time description: The start of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC type: integer format: int64 - in: query name: end_time description: The end of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC type: integer format: int64 - in: query name: next_token description: The token for the next set of items to return type: string /v2/apps/{app_id}/app_logs/search: get: summary: Search log events tags: - AppLogs responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppLogFilterEventList' parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: query name: log_stream description: Log stream name type: string - in: query name: asset_id description: Asset ID by which logs will be filtered. F.e. ASSET=48238 type: string - in: query name: filter description: Filter pattern type: string - in: query name: start_time description: The start of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC type: integer format: int64 - in: query name: end_time description: The end of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC type: integer format: int64 - in: query name: next_token description: The token for the next set of items to return type: string /v2/app_types: get: summary: List AppTypes tags: - AppTypes responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppTypeList' /v2/app_types/{id}: get: summary: Show AppType tags: - AppTypes responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppType' parameters: - in: path name: id description: AppType ID required: true type: integer format: int64 patch: summary: Update an AppType tags: - AppTypes responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated AppType schema: $ref: '#/definitions/AppType' parameters: - in: path name: id description: AppType ID required: true type: integer format: int64 - in: body name: app_type description: AppType Payload required: true type: object schema: $ref: '#/definitions/AppTypePayload' /v2/apps/{app_key}/app_settings_templates: get: summary: List accesible app settings templates tags: - AppSettingsTemplates responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppSettingsTemplateList' parameters: - in: path name: id description: App Key required: true type: string - in: query name: name description: Filter by App Settings Template name type: string - in: query name: per_page description: Number of app runs per page type: integer - in: query name: page description: Page number type: integer - in: query name: ownership description: 'Filter app setting templates, by current_user or shared. Possible values: "own", "shared".' type: string - in: query name: published description: Filter app by published app settings template type: string - in: query name: exact_name description: Filter by App Settings Template by exact name type: string post: summary: Create an app settings template tags: - AppSettingsTemplates responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created app schema: $ref: '#/definitions/AppSettingsTemplate' parameters: - in: path name: id description: App Key required: true type: string - in: body name: app_settings_template description: App Settings Template Payload required: true type: object schema: $ref: '#/definitions/AppSettingsTemplatePayload' /v2/apps/{app_key}/app_settings_templates/{id}: get: summary: Show app tags: - AppSettingsTemplates responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppSettingsTemplate' parameters: - in: path name: app_key description: App Key required: true type: string - in: path name: id description: AppSettingsTemplate ID required: true type: integer format: int64 patch: summary: Update an AppSettingsTemplate tags: - AppSettingsTemplates responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated AppSettingsTemplate schema: $ref: '#/definitions/AppSettingsTemplate' parameters: - in: path name: app_key description: App Key required: true type: string - in: path name: id description: AppSettingsTemplate ID required: true type: integer format: int64 - in: body name: app_settings_template description: App Settings Template Payload required: true type: object schema: $ref: '#/definitions/AppSettingsTemplatePayload' delete: summary: Delete an AppSettingsTemplate tags: - AppSettingsTemplates responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: AppSettingsTemplate deleted parameters: - in: path name: app_key description: App Key required: true type: string - in: path name: id description: AppSettingsTemplate ID required: true type: integer format: int64 /v2/apps/{app_key}/app_settings_templates/{id}/share: post: summary: Share an AppSettingsTemplate tags: - AppSettingsTemplates responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created AppSettingsTemplateShares schema: $ref: '#/definitions/AppSettingsTemplateShareList' parameters: - in: path name: app_key description: App Key required: true type: string - in: path name: id description: AppSettingsTemplate ID required: true type: integer format: int64 - in: query name: user_id description: User IDs items: type: integer /v2/apps/{app_key}/app_settings_templates/{id}/unshare: post: summary: Unshare an AppSettingsTemplate tags: - AppSettingsTemplates responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Unshared AppSettingsTemplate schema: status: string example: status: unshared parameters: - in: path name: app_key description: App Key required: true type: string - in: path name: id description: AppSettingsTemplate ID required: true type: integer format: int64 - in: query name: user_id description: User IDs items: type: integer /v2/apps/{app_key}/app_settings_templates/{id}/copy: post: summary: Copy user's own or shared AppSettingsTemplate tags: - AppSettingsTemplates responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created AppSettingsTemplateShares schema: $ref: '#/definitions/AppSettingsTemplate' parameters: - in: path name: app_key description: App Key required: true type: string - in: path name: id description: AppSettingsTemplate ID required: true type: integer format: int64 /v2/apps/{app_key}/app_settings_templates/{id}/publish: post: summary: Publish a AppSettingsTemplate as a company template. This'll create a copy of the template tags: - AppSettingsTemplates responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: New Published AppSettingsTemplateShares schema: $ref: '#/definitions/AppSettingsTemplate' parameters: - in: path name: app_key description: App Key required: true type: string - in: path name: id description: AppSettingsTemplate ID required: true type: integer format: int64 - in: body name: app_settings_template description: Publish App Settings Template Payload required: true type: object schema: $ref: '#/definitions/PublishAppSettingsTemplatePayload' /v2/app_stream_templates: get: summary: List accessible app stream templates tags: - AppStreamTemplate responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppStreamTemplateList' parameters: - in: query name: log_type description: Filter by log_type. Can be time or depth required: false type: string - in: query name: segment description: Filter by segment. Can be drilling or completion required: false type: string - in: query name: data_source description: Filter by data source. Can be witsml or csv required: false type: string - in: query name: stream_mode description: Filter by stream mode. Can be live or historical required: false type: string post: summary: Create an app stream template tags: - AppStreamTemplate responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created app schema: $ref: '#/definitions/AppStreamTemplate' parameters: - in: body name: app_stream_template description: App Stream Template Payload required: true type: object schema: $ref: '#/definitions/AppStreamTemplatePayload' /v2/app_stream_templates/{id}: get: summary: Show app stream template tags: - AppStreamTemplate responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppStreamTemplateShow' parameters: - in: path name: id description: AppStreamTemplate ID required: true type: integer format: int64 patch: summary: Update an AppStreamTemplate tags: - AppStreamTemplate responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated AppStreamTemplate schema: $ref: '#/definitions/AppStreamTemplate' parameters: - in: path name: id description: AppStreamTemplate ID required: true type: integer format: int64 - in: body name: app_stream_template description: App Stream Template Payload required: true type: object schema: $ref: '#/definitions/AppStreamTemplatePayload' delete: summary: Delete an AppStreamTemplate tags: - AppStreamTemplate responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: AppStreamTemplate deleted parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: path name: id description: AppStreamTemplate ID required: true type: integer format: int64 /v2/app_stream_templates/{id}/add_app: post: summary: Add AppStreamTemplateApp to AppStreamTemplate tags: - AppStreamTemplateApp responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created AppStreamTemplateApp schema: $ref: '#/definitions/AppStreamTemplateApp' parameters: - in: path name: id description: AppStreamTemplate ID required: true type: integer format: int64 - in: body name: app_id description: App ID required: true type: integer format: int64 - in: body name: app_stream_template description: App Stream Template App Payload required: true type: object schema: $ref: '#/definitions/AppStreamTemplateAppPayload' /v2/app_stream_templates/{app_stream_template_id}/update_app/{id}: post: summary: Update AppStreamTemplateApp tags: - AppStreamTemplateApp responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated AppStreamTemplateApp schema: $ref: '#/definitions/AppStreamTemplateApp' parameters: - in: path name: app_stream_template_id description: AppStreamTemplate ID required: true type: integer format: int64 - in: path name: id description: AppStreamTemplateApp ID required: true type: integer format: int64 /v2/app_stream_templates/{app_stream_template_id}/remove_app/{id}: delete: summary: Remove AppStreamTemplateApp from AppStreamTemplate tags: - AppStreamTemplateApp responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: AppStreamTemplateApp deleted parameters: - in: path name: app_stream_template_id description: AppStreamTemplate ID required: true type: integer format: int64 - in: path name: id description: AppStreamTemplateApp ID required: true type: integer format: int64 /v2/dataset_types: get: summary: List DatasetTypes tags: - DatasetTypes responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/DatasetTypeList' /v2/datset_types/{id}: get: summary: Show DatasetType tags: - DatasetTypes responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/DatasetType' parameters: - in: path name: id description: DatasetType ID required: true type: integer format: int64 patch: summary: Update an DatasetType tags: - DatasetTypes responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated DatasetType schema: $ref: '#/definitions/DatasetType' parameters: - in: path name: id description: DatasetType ID required: true type: integer format: int64 - in: body name: dataset_type description: DatasetType Payload required: true type: object schema: $ref: '#/definitions/DatasetTypePayload' /v2/documents: get: summary: List documents tags: - Documents responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/DocumentList' parameters: - in: query name: parent_slug description: Filter documents by parent_slug items: type: string - in: query name: search description: Search document text type: string post: summary: Create a document tags: - Documents responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created document schema: $ref: '#/definitions/Document' parameters: - in: body name: document description: Document Payload required: true type: object schema: $ref: '#/definitions/DocumentPayload' /v2/documents/{id}: get: summary: Show Document tags: - Documents responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/Document' parameters: - in: path name: id description: Document ID required: true type: integer format: int64 patch: summary: Update a Document tags: - Documents responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Document schema: $ref: '#/definitions/Document' parameters: - in: path name: id description: Document ID required: true type: integer format: int64 - in: body name: document description: Document Payload required: true type: object schema: $ref: '#/definitions/DocumentPayload' delete: summary: Delete a Document tags: - Documents responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Document deleted parameters: - in: path name: id description: Document ID required: true type: integer /v2/documents/{document_id}/document_sections: get: summary: List sections of document tags: - Documents responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/DocumentSectionList' parameters: - in: path name: document_id description: Document ID required: true type: integer format: int64 post: summary: Create a document section tags: - Documents responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Document Section schema: $ref: '#/definitions/DocumentSection' parameters: - in: body name: document_section description: Document Payload required: true type: object schema: $ref: '#/definitions/DocumentSectionPayload' /v2/documents/{document_id}/document_sections/{id}: get: summary: Show Document Section tags: - Documents responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/DocumentSection' parameters: - in: path name: document_id description: Document ID required: true type: integer format: int64 - in: path name: id description: Document Section ID required: true type: integer format: int64 patch: summary: Update Document Section tags: - Documents responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Document Section schema: $ref: '#/definitions/DocumentSection' parameters: - in: path name: document_id description: Document ID required: true type: integer format: int64 - in: path name: id description: Document Section ID required: true type: integer format: int64 - in: body name: document_section description: Document Section Payload required: true type: object schema: $ref: '#/definitions/DocumentSectionPayload' delete: summary: Delete a Document Section tags: - Documents responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Document Section deleted parameters: - in: path name: document_id description: Document ID required: true type: integer format: int64 - in: path name: id description: Document Section ID required: true type: integer format: int64 /v2/rig_templates: get: summary: List rig templates tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/RigTemplateList' parameters: - in: query name: rig_id description: Filter rig templates by rig_id type: integer format: int64 - in: query name: company_id description: Filter rig templates by company_id type: integer format: int64 - in: query name: search description: Search rig templates by rig name type: string post: summary: Create a rig template tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created rig template schema: $ref: '#/definitions/RigTemplate' parameters: - in: body name: rig_template description: Rig Template Payload required: true type: object schema: $ref: '#/definitions/RigTemplatePayload' /v2/rig_templates/aggregated_values: get: summary: Get aggregated values from rig template items tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response schema: properties: data: type: array items: type: string operationId: getRigTemplatesAggregatedValues parameters: - in: query name: rig_template_id description: Rig Template ID (provide one of rig_id, well_id, or rig_template_id) type: integer format: int64 - in: query name: rig_id description: Rig ID (provide one of rig_id, well_id, or rig_template_id) type: integer format: int64 - in: query name: well_id description: Well ID (provide one of rig_id, well_id, or rig_template_id) type: integer format: int64 - in: query name: rig_template_category_name description: Name of the rig template category required: true type: string - in: query name: rig_template_item_field description: 'Field from rig template item data to aggregate (default: name)' type: string /v2/rig_templates/{id}: get: summary: Show Rig Template tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/RigTemplate' parameters: - in: path name: id description: Rig Template ID required: true type: integer format: int64 patch: summary: Update a Rig Template tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Rig Template schema: $ref: '#/definitions/RigTemplate' parameters: - in: path name: id description: Rig Template ID required: true type: integer format: int64 - in: body name: rig_template description: Rig Template Payload required: true type: object schema: $ref: '#/definitions/RigTemplatePayload' delete: summary: Delete a Rig Template tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Rig Template deleted parameters: - in: path name: id description: Rig Template ID required: true type: integer /v2/rig_template_categories: get: summary: List rig template categories tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/RigTemplateCategoryList' post: summary: Create a rig template category tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created rig template category schema: $ref: '#/definitions/RigTemplateCategory' parameters: - in: body name: rig_template_category description: Rig Template Category Payload required: true type: object schema: $ref: '#/definitions/RigTemplateCategoryPayload' /v2/rig_template_categories/{id}: get: summary: Show Rig Template Category tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/RigTemplateCategory' parameters: - in: path name: id description: Rig Template Category ID required: true type: integer format: int64 patch: summary: Update a Rig Template Category tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Rig Template Category schema: $ref: '#/definitions/RigTemplateCategory' parameters: - in: path name: id description: Rig Template Category ID required: true type: integer format: int64 - in: body name: rig_template_category description: Rig Template Category Payload required: true type: object schema: $ref: '#/definitions/RigTemplateCategoryPayload' delete: summary: Delete a Rig Template Category tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Rig Template Category deleted parameters: - in: path name: id description: Rig Template Category ID required: true type: integer /v2/rig_templates/{rig_template_id}/rig_template_items: get: summary: List items of rig template tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/RigTemplateItemList' parameters: - in: path name: rig_template_id description: Rig Template ID required: true type: integer format: int64 post: summary: Create a rig template item tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Rig Template Item schema: $ref: '#/definitions/RigTemplateItem' parameters: - in: path name: rig_template_id description: Rig Template ID required: true type: integer format: int64 - in: body name: rig_template_item description: Rig Template Item Payload required: true type: object schema: $ref: '#/definitions/RigTemplateItemPayload' /v2/rig_templates/{rig_template_id}/rig_template_items/{id}: get: summary: Show Rig Template Item tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/RigTemplateItem' parameters: - in: path name: rig_template_id description: Rig Template ID required: true type: integer format: int64 - in: path name: id description: Rig Template Item ID required: true type: integer format: int64 patch: summary: Update Rig Template Item tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Rig Template Item schema: $ref: '#/definitions/RigTemplateItem' parameters: - in: path name: rig_template_id description: Rig Template ID required: true type: integer format: int64 - in: path name: id description: Rig Template Item ID required: true type: integer format: int64 - in: body name: rig_template_item description: Rig Template Item Payload required: true type: object schema: $ref: '#/definitions/RigTemplateItemPayload' delete: summary: Delete a Rig Template Item tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Rig Template Item deleted parameters: - in: path name: rig_template_id description: Rig Template ID required: true type: integer format: int64 - in: path name: id description: Rig Template Item ID required: true type: integer format: int64 /v2/intervention_unit_templates: get: summary: List intervention unit templates tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response schema: $ref: '#/definitions/InterventionUnitTemplateList' parameters: - in: query name: intervention_unit_id description: Filter templates by intervention unit ID type: integer format: int64 - in: query name: company_id description: Filter templates by company ID type: integer format: int64 - in: query name: search description: Search templates by intervention unit name type: string post: summary: Create an intervention unit template tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created intervention unit template schema: $ref: '#/definitions/InterventionUnitTemplate' parameters: - in: body name: intervention_unit_template required: true schema: $ref: '#/definitions/InterventionUnitTemplatePayload' /v2/intervention_unit_templates/aggregated_values: get: summary: Get aggregated values from intervention unit template items tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response schema: properties: data: type: array items: type: string parameters: - in: query name: intervention_unit_template_id type: integer format: int64 - in: query name: intervention_unit_id type: integer format: int64 - in: query name: intervention_unit_event_id type: integer format: int64 - in: query name: intervention_unit_template_category_name required: true type: string - in: query name: intervention_unit_template_item_field type: string /v2/intervention_unit_templates/{id}: get: summary: Show an intervention unit template tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response schema: $ref: '#/definitions/InterventionUnitTemplate' parameters: - in: path name: id required: true type: integer format: int64 patch: summary: Update an intervention unit template tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated intervention unit template parameters: - in: path name: id required: true type: integer format: int64 - in: body name: intervention_unit_template required: true schema: $ref: '#/definitions/InterventionUnitTemplatePayload' delete: summary: Delete an intervention unit template tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Intervention unit template deleted parameters: - in: path name: id required: true type: integer format: int64 /v2/intervention_unit_template_categories: get: summary: List intervention unit template categories tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response schema: $ref: '#/definitions/InterventionUnitTemplateCategoryList' post: summary: Create an intervention unit template category tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created intervention unit template category parameters: - in: body name: intervention_unit_template_category required: true schema: $ref: '#/definitions/InterventionUnitTemplateCategoryPayload' /v2/intervention_unit_template_categories/{id}: get: summary: Show an intervention unit template category tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response parameters: - in: path name: id required: true type: integer format: int64 patch: summary: Update an intervention unit template category tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated intervention unit template category parameters: - in: path name: id required: true type: integer format: int64 - in: body name: intervention_unit_template_category required: true schema: $ref: '#/definitions/InterventionUnitTemplateCategoryPayload' delete: summary: Delete an intervention unit template category tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Intervention unit template category deleted parameters: - in: path name: id required: true type: integer format: int64 /v2/intervention_unit_templates/{intervention_unit_template_id}/intervention_unit_template_items: get: summary: List intervention unit template items tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response schema: $ref: '#/definitions/InterventionUnitTemplateItemList' parameters: - in: path name: intervention_unit_template_id required: true type: integer format: int64 post: summary: Create an intervention unit template item tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created intervention unit template item parameters: - in: path name: intervention_unit_template_id required: true type: integer format: int64 - in: body name: intervention_unit_template_item required: true schema: $ref: '#/definitions/InterventionUnitTemplateItemPayload' /v2/intervention_unit_templates/{intervention_unit_template_id}/intervention_unit_template_items/{id}: get: summary: Show an intervention unit template item tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response parameters: - in: path name: intervention_unit_template_id required: true type: integer format: int64 - in: path name: id required: true type: integer format: int64 patch: summary: Update an intervention unit template item tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated intervention unit template item parameters: - in: path name: intervention_unit_template_id required: true type: integer format: int64 - in: path name: id required: true type: integer format: int64 - in: body name: intervention_unit_template_item required: true schema: $ref: '#/definitions/InterventionUnitTemplateItemPayload' delete: summary: Delete an intervention unit template item tags: - Assets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Intervention unit template item deleted parameters: - in: path name: intervention_unit_template_id required: true type: integer format: int64 - in: path name: id required: true type: integer format: int64 /v2/tiers: get: summary: List Tiers tags: - Tiers responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/TierList' parameters: - in: query name: segment description: Filter by segment type: string enum: - drilling - completion - intervention - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: name,-updated_at' type: string enum: - name - price - created_at - updated_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc post: summary: Create a Tier tags: - Tiers responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Tier schema: $ref: '#/definitions/Tier' parameters: - in: body name: tier description: Tier Payload required: true type: object schema: $ref: '#/definitions/TierPayload' /v2/tiers/{id}: get: summary: Show Tier tags: - Tiers responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/Tier' parameters: - in: path name: id description: Tier ID required: true type: integer format: int64 patch: summary: Update a Tier tags: - Tiers responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Tier schema: $ref: '#/definitions/Tier' parameters: - in: path name: id description: Tier ID required: true type: integer format: int64 - in: body name: tier description: Tier Payload required: true type: object schema: $ref: '#/definitions/TierPayload' delete: summary: Delete a Tier tags: - Tiers responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Tier deleted parameters: - in: path name: id description: Tier ID required: true type: integer /v2/product_subscriptions: get: summary: List Product Subscriptions tags: - ProductSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/ProductSubscriptionList' parameters: - in: query name: status description: Filter Product Subscriptions by status type: string enum: - unapproved - active - cancelled - denied - all - in: query name: company_id description: Filter Product Subscriptions by company_id type: integer format: int64 - in: query name: asset_name description: Filter Product Subscriptions by asset name type: string - in: query name: name description: Filter Product Subscriptions by subscription name type: string - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: name,-updated_at' type: string enum: - name - price - created_at - updated_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc post: summary: Create a Product Subscription tags: - ProductSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Product Subscription schema: $ref: '#/definitions/ProductSubscription' parameters: - in: body name: tier description: Product Subscription Payload required: true type: object schema: $ref: '#/definitions/ProductSubscriptionPayload' /v2/product_subscriptions/{uuid}: get: summary: Show Product Subscription tags: - ProductSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/ProductSubscription' parameters: - in: path name: uuid description: Product Subscription UUID required: true type: string patch: summary: Update a Product Subscription tags: - ProductSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Product Subscription schema: $ref: '#/definitions/ProductSubscription' parameters: - in: path name: uuid description: Product Subscription UUID required: true type: string - in: body name: product_subscription description: Product Subscription Payload required: true type: object schema: $ref: '#/definitions/ProductSubscriptionUpdatePayload' delete: summary: Delete a Product Subscription tags: - ProductSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Product Subscription deleted parameters: - in: path name: uuid description: Product Subscription UUID required: true type: string /v2/product_subscriptions/{uuid}/cancel: post: summary: Cancel a Product Subscription tags: - ProductSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Product Subscription's status after cancellation parameters: - in: path name: uuid description: Product Subscription UUID required: true type: string /v2/product_subscriptions/{id}/approve: post: summary: Approve a Product Subscription tags: - ProductSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Product Subscription approved parameters: - in: path name: id description: Product Subscription ID required: true type: integer /v2/product_subscriptions/{id}/deny: post: summary: Deny a Product Subscription tags: - ProductSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Product Subscription denied parameters: - in: path name: id description: Product Subscription ID required: true type: integer /v2/platform_subscriptions: get: summary: List Platform Subscriptions tags: - PlatformSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/PlatformSubscriptionList' parameters: - in: query name: status description: Filter Platform Subscriptions by status type: string enum: - unapproved - active - cancelled - denied - all - in: query name: company_id description: Filter Platform Subscriptions by company_id type: integer format: int64 - in: query name: asset_name description: Filter Platform Subscriptions by asset name type: string - in: query name: name description: Filter Platform Subscriptions by subscription name or apps name type: string - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: name,-updated_at' type: string enum: - name - price - created_at - updated_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc post: summary: Create a Platform Subscription tags: - PlatformSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Platform Subscription schema: $ref: '#/definitions/PlatformSubscription' parameters: - in: body name: tier description: Platform Subscription Payload required: true type: object schema: $ref: '#/definitions/PlatformSubscriptionPayload' /v2/platform_subscriptions/{uuid}: get: summary: Show Platform Subscription tags: - PlatformSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/PlatformSubscription' parameters: - in: path name: uuid description: Platform Subscription UUID required: true type: string patch: summary: Update a Platform Subscription tags: - PlatformSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Platform Subscription schema: $ref: '#/definitions/PlatformSubscription' parameters: - in: path name: uuid description: Platform Subscription UUID required: true type: string - in: body name: platform_subscription description: Platform Subscription Payload required: true type: object schema: $ref: '#/definitions/PlatformSubscriptionUpdatePayload' delete: summary: Delete a Platform Subscription tags: - PlatformSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Platform Subscription deleted parameters: - in: path name: uuid description: Platform Subscription UUID required: true type: string /v2/platform_subscriptions/{uuid}/cancel: post: summary: Cancel a Platform Subscription tags: - PlatformSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Platform Subscription's status after cancellation parameters: - in: path name: uuid description: Platform Subscription UUID required: true type: string /v2/platform_subscriptions/{id}/approve: post: summary: Approve a Platform Subscription tags: - PlatformSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Platform Subscription approved parameters: - in: path name: id description: Platform Subscription ID required: true type: integer /v2/platform_subscriptions/{id}/deny: post: summary: Deny a Platform Subscription tags: - PlatformSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Platform Subscription denied parameters: - in: path name: id description: Platform Subscription ID required: true type: integer /v2/platform_subscriptions/{id}/resume: post: summary: Resume a Platform Subscription tags: - PlatformSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/PlatformSubscription' '400': type: object description: Error on resuming schema: message: string example: message: Subscription is not cancelled parameters: - in: path name: id description: Platform Subscription ID required: true type: integer /v2/provisioning_subscriptions: get: summary: List Provisioning Subscriptions tags: - ProvisioningSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/ProvisioningSubscriptionList' parameters: - in: query name: status description: Filter Provisioning Subscriptions by status type: string enum: - unapproved - active - cancelled - denied - all - in: query name: company_id description: Filter Provisioning Subscriptions by company_id type: integer format: int64 - in: query name: asset_name description: Filter Provisioning Subscriptions by asset name type: string - in: query name: name description: Filter Provisioning Subscriptions by subscription name or apps name type: string - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: name,-updated_at' type: string enum: - name - created_at - updated_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc post: summary: Create a Provisioning Subscription tags: - ProvisioningSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Provisioning Subscription schema: $ref: '#/definitions/ProvisioningSubscription' parameters: - in: body name: provisioning_subscription description: Provisioning Subscription Payload required: true type: object schema: $ref: '#/definitions/ProvisioningSubscriptionPayload' /v2/provisioning_subscriptions/{uuid}: get: summary: Show Provisioning Subscription tags: - ProvisioningSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/ProvisioningSubscription' parameters: - in: path name: uuid description: Provisioning Subscription UUID required: true type: string patch: summary: Update a Provisioning Subscription tags: - ProvisioningSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Provisioning Subscription schema: $ref: '#/definitions/ProvisioningSubscription' parameters: - in: path name: uuid description: Provisioning Subscription UUID required: true type: string - in: body name: provisioning_subscription description: Provisioning Subscription Payload required: true type: object schema: $ref: '#/definitions/ProvisioningSubscriptionUpdatePayload' delete: summary: Delete a Provisioning Subscription tags: - ProvisioningSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Provisioning Subscription deleted parameters: - in: path name: uuid description: Provisioning Subscription UUID required: true type: string /v2/provisioning_subscriptions/{uuid}/cancel: post: summary: Cancel a Provisioning Subscription tags: - ProvisioningSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Provisioning Subscription's status after cancellation parameters: - in: path name: uuid description: Provisioning Subscription UUID required: true type: string /v2/provisioning_subscriptions/{id}/approve: post: summary: Approve a Provisioning Subscription tags: - ProvisioningSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Provisioning Subscription approved parameters: - in: path name: id description: Provisioning Subscription ID required: true type: integer /v2/provisioning_subscriptions/{id}/deny: post: summary: Deny a Provisioning Subscription tags: - ProvisioningSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Provisioning Subscription denied parameters: - in: path name: id description: Provisioning Subscription ID required: true type: integer /v2/provisioning_subscriptions/{id}/resume: post: summary: Resume a Provisioning Subscription tags: - ProvisioningSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Provisioning response schema: $ref: '#/definitions/ProvisioningSubscription' '400': type: object description: Error on resuming schema: message: string example: message: Subscription is not cancelled parameters: - in: path name: id description: Platform Subscription ID required: true type: integer /v2/provisioning_subscriptions/{id}/app_streams: get: summary: Show AppStream info for a Provisioning Subscription tags: - ProvisioningSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Provisioning response schema: properties: data: type: array items: properties: app_stream_id: type: integer format: int64 app_stream_name: type: string app_stream_status: type: string apps: type: array items: properties: id: type: integer format: int64 name: type: string depends_on_apps: type: array items: properties: id: type: integer format: int64 name: type: string example: data: - app_stream_id: 123 app_stream_name: Rig HP 800 App Stream app_stream_status: active apps: - id: 10000 name: Corva Data App 1 depends_on_apps: - id: 10001 name: Corva Data App 2 parameters: - in: path name: id description: Platform Subscription ID required: true type: integer /v2/purchase_subscriptions: get: summary: List Purchase Subscriptions tags: - PurchaseSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/PurchaseSubscriptionList' parameters: - in: query name: status description: Filter Purchase Subscriptions by status type: string enum: - unapproved - active - cancelled - denied - all - in: query name: company_id description: Filter Purchase Subscriptions by company_id type: integer format: int64 - in: query name: asset_name description: Filter Purchase Subscriptions by asset name type: string - in: query name: name description: Filter Purchase Subscriptions by subscription name or apps name type: string - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: name,-updated_at' type: string enum: - name - price - created_at - updated_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc /v2/purchase_subscriptions/{uuid}/cancel: post: summary: Cancel a Purchase Subscription tags: - PurchaseSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Purchase Subscription's status after cancellation parameters: - in: path name: uuid description: Purchase Subscription UUID required: true type: string /v2/purchase_subscriptions/{uuid}: get: summary: Show Purchase Subscription tags: - PurchaseSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/PurchaseSubscription' parameters: - in: path name: uuid description: Purchase Subscription UUID required: true type: string patch: summary: Update a Purchase Subscription tags: - PurchaseSubscriptions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Purchase Subscription schema: $ref: '#/definitions/PurchaseSubscription' parameters: - in: path name: uuid description: Purchase Subscription UUID required: true type: string - in: body name: purchase_subscription description: Purchase Subscription Payload required: true type: object schema: $ref: '#/definitions/PurchaseSubscriptionUpdatePayload' /v2/subscription_features: get: summary: List Subscription Features tags: - SubscriptionFeatures responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/SubscriptionFeatureList' /v2/subscription_features/{id}: get: summary: Show Subscription Feature tags: - SubscriptionFeatures responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/SubscriptionFeature' parameters: - in: path name: id description: Subscription Feature ID required: true type: integer format: int64 /v2/subscriptions_token: post: summary: Create a subscriptions service token tags: - ApiKey responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: properties: token: type: string token_type: type: string enum: - Bearer expires_in: type: integer enum: - 900 example: token: eyJhbGciOiJIUzI1NiJ9... token_type: Bearer expires_in: 900 '400': description: Request body is not allowed description: Creates a 15-minute subscriptions service token for an API key with subscriptions:read permission. The JWT collections claim contains sorted provider#collection names from explicit Dataset/read_from permissions; an empty array grants no dataset subscriptions. /v1/data/corva/well_cache: get: summary: List WellCache Records tags: - WellCache responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/WellCacheList' parameters: - in: query name: asset_id description: Search by Asset ID type: integer - in: query name: company_id description: Search by Company ID type: integer /v2/groups/{group_id}/blacklisted_datasets: get: summary: List of blacklisted datasets tags: - BlacklistedDatasets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/BlacklistedDataset' parameters: - in: path name: group_id description: BlacklistedDataset group ID required: true type: integer post: summary: Create BlacklistedDataset tags: - BlacklistedDatasets parameters: - in: path name: group_id description: BlacklistedDataset group ID required: true type: integer - in: body name: blacklisted_dataset description: BlacklistedDataset Payload required: true type: object schema: $ref: '#/definitions/CreateBlacklistedDataset' responses: '200': type: object description: Successful response schema: $ref: '#/definitions/BlacklistedDataset' /v2/groups/{group_id}/blacklisted_datasets/bulk_create: post: summary: Create many BlacklistedDatasets tags: - BlacklistedDatasets parameters: - in: path name: group_id description: BlacklistedDataset group ID required: true type: integer - in: body name: blacklisted_dataset description: BlacklistedDataset Payload required: true type: object schema: $ref: '#/definitions/BulkCreateBlacklistedDataset' responses: '200': type: object description: Successful response schema: $ref: '#/definitions/BlacklistedDataset' /v2/groups/{group_id}/blacklisted_datasets/{id}: delete: summary: Delete a blacklisted dataset tags: - BlacklistedDatasets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: BlacklistDataset deleted parameters: - in: path name: group_id description: BlacklistedDataset group ID required: true type: integer - in: path name: id description: BlacklistedDataset ID required: true type: integer /v2/apps/{app_id}/metrics: get: summary: Metric statistics for a given App tags: - App responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppMetricList' '422': type: object description: Failure response schema: $ref: '#/definitions/AppMetricError' parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: query name: metric_name description: The App name required: true type: string - in: query name: start_time description: Unix timestamp required: true type: integer - in: query name: end_time description: Unix timestamp required: true type: integer - in: query name: period description: Period must be divisible by 60 type: integer /v2/app_metrics/for_selected_apps: get: summary: Metric statistics for the selected Apps tags: - App responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppMetricsList' parameters: - in: query name: app_ids description: Apps ids required: true type: integer - in: query name: metric_name description: Metric name required: true type: string - in: query name: start_time description: Unix timestamp required: true type: integer - in: query name: end_time description: Unix timestamp required: true type: integer - in: query name: period description: Period must be divisible by 60 type: integer - in: query name: segment description: Segment for apps type: string /v2/apps/{app_id}/assets: get: summary: Retrieve app assets tags: - AppAssets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppAssetList' parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: query name: asset_name description: Asset Name type: string - in: query name: asset_status description: 'Asset Status. Possible: "all", "active", "paused", "complete", "idle"' type: string - in: query name: from description: Unix timestamp to start filtering assets "from" any time. Will filter assets by last_active_at field type: integer format: int64 - in: query name: to description: 'Unix timestamp to start filtering assets "to: any time. Will filter assets by last_active_at field' type: integer format: int64 - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer /v2/package_reviews: get: summary: List PackageReviews tags: - PackageReviews responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/PackageReviewList' parameters: - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: name,-updated_at' type: string enum: - status - created_at - updated_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc - in: query name: query description: Search by App name type: string - in: query name: status description: Filter by PackageReview status type: string enum: - pending - approved - rejected post: summary: Create a PackageReview tags: - PackageReviews responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created PackageReview schema: $ref: '#/definitions/PackageReview' parameters: - in: body name: package_review description: PackageReview Payload required: true type: object schema: $ref: '#/definitions/PackageReviewCreatePayload' /v2/package_reviews/{id}: get: summary: Show PackageReview tags: - PackageReviews responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/PackageReview' parameters: - in: path name: id description: PackageReview ID required: true type: integer format: int64 patch: summary: Update a PackageReview tags: - PackageReviews responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated PackageReview schema: $ref: '#/definitions/PackageReview' '400': description: Package Review not updated schema: example: status: not_updated message: Package review's status isn't 'pending' or passed status is wrong parameters: - in: path name: id description: PackageReview ID required: true type: integer format: int64 - in: body name: package_review description: PackageReview Payload required: true type: object schema: $ref: '#/definitions/PackageReviewUpdatePayload' delete: summary: Cancel a PackageReview tags: - PackageReviews responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Package Review deleted schema: example: status: deleted '400': description: Package Review not deleted schema: example: status: not_deleted message: Package review's status isn't pending parameters: - in: path name: id description: PackageReview ID required: true type: integer /v2/app_purchases: get: summary: List of app purchases tags: - AppPurchases responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response with all required relationships schema: $ref: '#/definitions/AppPurchaseList' parameters: - in: query name: status description: 'Filter app purchases by status. Valid statuses: pending, approved, denied' type: string - in: query name: search description: Search app purchases by app name type: string - in: query name: app_id description: Filter app purchases by app_id type: integer - in: query name: purchased description: Filter app purchases if they are purchased or provided type: boolean - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer post: summary: Create a App Purchase tags: - AppPurchases responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created App Purchase Payload without apps/assets relationships schema: $ref: '#/definitions/AppPurchase' parameters: - in: body name: app_purchase description: App Purchase Payload required: true type: object schema: $ref: '#/definitions/AppPurchasePayload' /v2/app_purchases/{id}: get: summary: Show app purchase tags: - AppPurchases responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response with all required relationships schema: properties: data: type: object $ref: '#/definitions/AppPurchase' parameters: - in: path name: id description: App Purchase ID required: true type: integer format: int64 /v2/app_purchases/{id}/approve: post: summary: Approve app purchase tags: - AppPurchases responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response without apps/assets relationships schema: properties: data: type: object $ref: '#/definitions/AppPurchase' parameters: - in: path name: id description: App Purchase ID required: true type: integer format: int64 /v2/app_purchases/{id}/deny: post: summary: Deny app purchase tags: - AppPurchases responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response without apps/assets relationships schema: properties: data: type: object $ref: '#/definitions/AppPurchase' parameters: - in: path name: id description: App Purchase ID required: true type: integer format: int64 /v2/app_purchases/{id}/resume: post: summary: Resume a App Purchase Subscription tags: - AppPurchases responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: App Purchase response schema: $ref: '#/definitions/AppPurchase' '400': type: object description: Error on resuming schema: message: string example: message: App Purchase subscriptions are not cancelled parameters: - in: path name: id description: App Purchases ID required: true type: integer /v2/datasets/filtered_by_apps: get: summary: List app_datasets for specific app ids with dependencies tags: - Datasets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/Dataset' parameters: - in: path name: app_ids description: Array of app ids required: true type: array items: id: integer /v2/apps/{app_id}/app_runs: get: summary: List of app runs tags: - AppRuns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppRunList' parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: query name: status description: App run status type: string - in: query name: well_id description: Filter by well id type: integer - in: query name: company_id description: Filter by company id type: integer - in: query name: app_ids description: Filter by app ids type: integer - in: query name: segment description: Filter by segment type: string enum: - drilling - completion - intervention - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer post: summary: Create AppRun tags: - AppRuns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successfully created app run schema: $ref: '#/definitions/AppRunSingle' parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: body name: app_run description: AppRun Payload required: true type: object schema: $ref: '#/definitions/AppRunCreatePayload' /v2/apps/{app_id}/app_runs/{id}: delete: summary: Stop AppRun execution tags: - AppRuns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: App run execution successfully stopped schema: properties: status: type: string example: status: deleted parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: path name: id description: App Run ID required: true type: integer format: int64 - in: query name: per_page description: Number of app runs per page type: integer - in: query name: page description: Page number type: integer patch: summary: Update AppRun status. Used only for api key authentication. tags: - AppRuns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: App run execution successfully updated. Auto updates finished_at time. schema: properties: status: type: string example: status: updated parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: path name: id description: App Run ID required: true type: integer format: int64 - in: body name: app_run description: AppRun Payload required: true type: object schema: properties: status: type: string description: Statuses can be running, completed, failed, terminating, stopped. example: status: completed get: summary: Return App Run tags: - AppRuns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: App run successfully returned schema: $ref: '#/definitions/AppRunSingle' parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: path name: id description: App Run ID required: true type: integer format: int64 /v2/apps/{app_id}/app_runs/{id}/stop: patch: summary: Stop AppRun execution tags: - AppRuns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: App run execution successfully stopped schema: properties: status: type: string notes: type: string completion_percentage: type: float example: status: stopped notes: Some notes completion_percentage: 55.32 parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: path name: id description: App Run ID required: true type: integer format: int64 /v2/apps/{app_id}/app_runs/duplicate_check: get: summary: Check duplicate app run tags: - AppRuns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Status can be warning or OK schema: properties: status: type: string example: status: warning parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: query name: well_id description: App run's well id required: true type: integer format: int64 - in: query name: app_stream_id description: App run's app stream required: true type: integer format: int64 - in: query name: app_version description: App run's app version required: true type: string /v1/app_streams: get: summary: List AppStreams tags: - AppStream responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppStreamList' parameters: - in: query name: company_id description: Filter by company_id required: false type: integer - in: query name: asset_id description: Filter by asset_id required: false type: integer - in: query name: segment description: Filter by segment required: false type: string - in: query name: status description: Filter by status required: false type: string - in: query name: type description: Filter by type required: false type: string - in: query name: log_type description: Filter by streams' log_type. Can be time or depth required: false type: string - in: query name: source_type description: Filter by source_type required: false type: string enum: - drilling - drillout - frac - pumpdown - wireline - lithology - in: query name: data_received_at description: Filter by data_received_at required: false type: string enum: - all - month - week - day - in: query name: last_active_at description: Filter by last_active_at required: false type: string enum: - all - month - week - day - in: query name: search description: Search by name required: false type: string - in: query name: started_by description: Filter by started_by user column required: false type: string - in: query name: app_id description: Filter by app_id required: false type: integer - in: query name: updated_at_gt description: Filter streams where updated_at greater than provided unix timestamp required: false type: integer format: timestamp post: summary: Create AppStream tags: - AppStream responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created AppStream schema: $ref: '#/definitions/AppStreamItem' parameters: - in: body name: name description: AppStream name required: true type: string - in: body name: asset_id description: AppStream asset_id required: true type: integer format: int64 - in: body name: settings description: AppStream settings. For StreamX, can include `streamx_edr_provider_ids` array of positive integer ids. required: false type: object - in: body name: configuration description: AppStream configuration required: false type: object - in: body name: status description: AppStream status required: false type: string - in: body name: visibility description: AppStream visibility required: false type: string - in: body name: source_type description: AppStream source_type required: false type: string - in: body name: log_type description: AppStream log_type required: false type: string - in: body name: log_identifier description: AppStream log_identifier required: false type: string - in: body name: log_display_name description: AppStream log_display_name required: false type: string - in: body name: draft description: App stream is draft or not required: false type: boolean - in: body name: edr_provider_id description: Attach edr provider to an app stream required: false type: integer format: int64 - in: body name: intervention_unit_event_id description: Attach intervention unit event to an app stream required: false type: integer format: int64 /v2/app_streams: get: summary: List AppStreams tags: - AppStream responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/V2AppStreamList' parameters: - in: query name: fields description: Respond with only the given list of fields, like app_stream.log_type. See example response for fields. items: type: string - in: query name: company_id description: Filter by company_id required: false type: integer - in: query name: asset_id description: Filter by asset_id required: false type: integer - in: query name: segment description: Filter by segment required: false type: string - in: query name: status description: Filter by status required: false type: string - in: query name: type description: Filter by type required: false type: string - in: query name: log_type description: Filter by streams' log_type. Can be time or depth required: false type: string - in: query name: source_type description: Filter by source_type required: false type: string enum: - drilling - drillout - frac - pumpdown - wireline - lithology - in: query name: data_received_at description: Filter by data_received_at required: false type: string enum: - all - month - week - day - in: query name: last_active_at description: Filter by last_active_at required: false type: string enum: - all - month - week - day - in: query name: search description: Search by name required: false type: string - in: query name: app_id description: Filter by app_id required: false type: integer - in: query name: consumer_strategy description: Filter by consumer_strategy required: false type: string - in: query name: updated_at_gt description: Filter streams where updated_at greater than provided unix timestamp required: false type: integer format: timestamp /v2/app_streams/idle_worker_stats: get: summary: Get AppStream Auto Idle Job Stats tags: - AppStream responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: idled_app_streams_per_day: integer idled_app_streams_per_month: integer example: idled_app_streams_per_day: 10 idled_app_streams_per_month: 100 /v2/app_streams/{id}: get: summary: Show AppStream tags: - AppStream responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/V2AppStreamItem' parameters: - in: query name: fields description: Respond with only the given list of fields, like app_stream.log_type. See example response for fields. items: type: string - in: path name: id description: AppStream ID required: true type: integer format: int64 /v1/app_streams/{id}: get: summary: Show AppStream tags: - AppStream responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppStreamItem' parameters: - in: path name: id description: AppStream ID required: true type: integer format: int64 patch: summary: Update AppStream tags: - AppStream responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated AppStream schema: $ref: '#/definitions/AppStreamItem' parameters: - in: body name: name description: AppStream name required: true type: string - in: body name: asset_id description: AppStream asset_id required: true type: integer format: int64 - in: body name: settings description: AppStream settings. For StreamX, can include `streamx_edr_provider_ids` array of positive integer ids. required: false type: object - in: body name: configuration description: AppStream configuration required: false type: object - in: body name: status description: AppStream status required: false type: string - in: body name: visibility description: AppStream visibility required: false type: string - in: body name: source_type description: AppStream source_type required: false type: string - in: body name: log_type description: AppStream log_type required: false type: string - in: body name: log_identifier description: AppStream log_identifier required: false type: string - in: body name: log_display_name description: AppStream log_display_name required: false type: string - in: body name: draft description: App stream is draft or not required: false type: boolean - in: body name: app_connections_attributes description: App connections parameters required: false type: array schema: items: $ref: '#/definitions/AppConnectionUpdateItemPayload' delete: summary: Delete AppStream tags: - AppStream responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: AppStream deleted parameters: - in: path name: id description: AppStream ID required: true type: integer format: int64 /v1/app_streams/{id}/clone: post: summary: Clone AppStream tags: - AppStream responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Cloned AppStream schema: $ref: '#/definitions/AppStreamItem' parameters: - in: body name: name description: AppStream name required: true type: string - in: body name: asset_id description: AppStream asset_id required: true type: integer format: int64 /v1/app_streams/{id}/create_backfill_stream: post: summary: Create Backfill App Stream for App Stream tags: - AppStream responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Backfill AppStream schema: $ref: '#/definitions/AppStreamItem' parameters: - in: body name: name description: Backfill AppStream name required: true type: string - in: body name: asset_id description: Backfill AppStream asset_id required: true type: integer format: int64 - in: body name: status description: Backfill AppStream status type: string enum: - active - idle default: idle - in: body name: app_connection_settings description: Override AppConnection settings type: object schema: $ref: '#/definitions/AppConnectionSettingsBackfillPayload' /v1/app_streams/{id}/force_resume: post: summary: Force resuming consumers for stream tags: - AppStream responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: AppStream force resumed consumers '412': description: App Stream is not a drilling time stream schema: message: string example: message: App Stream is not a drilling time stream parameters: - in: path name: id description: AppStream ID required: true type: integer format: int64 /v1/app_streams/{id}/reset_data_schedules: post: summary: Reset data_time scheduled app cursors and schedules for a purge/rerun window tags: - AppStream responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Data schedules were reset schema: properties: app_stream_id: type: integer format: int64 connections: type: array items: properties: app_connection_id: type: integer format: int64 app_key: type: string scheduler_type: type: string deleted_schedules_count: type: integer cursor_reset: type: boolean '400': description: Invalid or missing window parameters schema: message: string example: message: start_timestamp must be less than end_timestamp parameters: - in: path name: id description: AppStream ID required: true type: integer format: int64 - in: body name: start_timestamp description: Window start (epoch seconds) required: true type: integer format: int64 - in: body name: end_timestamp description: Window end (epoch seconds) required: true type: integer format: int64 - in: body name: app_keys description: Optional filter to specific follower app keys; defaults to all data_time scheduled connections required: false type: array schema: items: type: string example: app_keys: - corva.frac_schedule_adherence /v1/app_streams/batch_update: patch: summary: Batch Update AppStreams. Limited to 10 app streams tags: - AppStream responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: No permissions to update app streams schema: message: string example: message: Not able to update not accessible app streams. 1, 2, 3 app stream ids are not accessible '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: App streams were updated parameters: - in: body name: app_stream_ids description: AppStream Ids required: true type: array schema: items: type: integer example: app_stream_ids: - 12 - 34 - 56 - in: body name: app_stream description: App Stream Payload required: true type: object schema: $ref: '#/definitions/AppStreamBatchUpdatePayload' /v1/app_streams/batch_destroy: delete: summary: Batch Deletion of AppStreams. Limited to 10 app streams tags: - AppStream responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: No permissions to delete app streams schema: message: string example: message: Not able to update not accessible app streams. 1, 2, 3 app stream ids are not accessible '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: App streams were deleted parameters: - in: body name: app_stream_ids description: AppStream Ids required: true type: array schema: items: type: integer example: app_stream_ids: - 12 - 34 - 56 /v1/app_streams/{id}/update_edr_provider_connection_status: patch: summary: Update edr provider connection time tags: - AppStream responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Edr provider connection updated '412': description: connection_failed parameter missing parameters: - in: body name: connection_failed description: If connection is failed or not required: true type: boolean /v1/app_connections: post: summary: Create AppConnection tags: - AppConnection responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppConnectionResponse' parameters: - in: body name: app_connection description: AppConnection required: true type: object schema: $ref: '#/definitions/AppConnectionPayload' /v1/app_connections/{id}: get: summary: Show AppConnection tags: - AppConnection responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppConnectionResponse' parameters: - in: path name: id description: AppConnection ID required: true type: integer format: int64 patch: summary: Update AppConnection tags: - AppConnection responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppConnectionResponse' parameters: - in: body name: app_connection description: AppConnection required: true type: object schema: $ref: '#/definitions/AppConnectionPayload' delete: summary: Delete AppConnection tags: - AppConnection responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: AppConnection deleted parameters: - in: path name: id description: AppConnection ID required: true type: integer format: int64 /v1/app_connections/{id}/update_package: patch: summary: Update package version for AppConnection tags: - AppConnection responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated AppStream schema: $ref: '#/definitions/AppConnectionResponse' parameters: - in: body name: package_version description: Package version number required: true type: integer example: 1 /v2/apps/{app_id}/app_error_alerts: post: summary: Create an AppErrorAlert tags: - Apps - AppErrorAlert responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created AppErrorAlert schema: $ref: '#/definitions/AppErrorAlert' parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: body name: app_error_alert description: AppErrorAlert Payload required: true type: object schema: $ref: '#/definitions/AppErrorAlertPayload' get: summary: Show AppErrorAlert tags: - Apps - AppErrorAlert responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppErrorAlert' parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 patch: summary: Update an AppErrorAlert tags: - Apps - AppErrorAlert responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated AppErrorAlert schema: $ref: '#/definitions/AppErrorAlert' parameters: - in: body name: app_error_alert description: AppErrorAlert Payload required: true type: object schema: $ref: '#/definitions/AppErrorAlertPayload' delete: summary: Delete an AppErrorAlert tags: - Apps - AppErrorAlert responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: AppErrorAlert deleted parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 /v2/apps/{app_id}/app_error_alerts/subscribe: post: summary: Subscribe a user to AppErrorAlert tags: - Apps - AppErrorAlert responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: AppErrorAlert with users data schema: $ref: '#/definitions/AppErrorAlert' parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 - in: body name: notification_types description: Notification types for user type: array example: - desktop /v2/apps/{app_id}/app_error_alerts/unsubscribe: post: summary: Unsubscribe a user from AppErrorAlert tags: - Apps - AppErrorAlert responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: AppErrorAlert with users data schema: $ref: '#/definitions/AppErrorAlert' parameters: - in: path name: app_id description: App ID required: true type: integer format: int64 /v2/usage: get: summary: Returns Usage records tags: - Usage parameters: - in: query name: company_id description: Company ID. required: false type: integer - in: query name: billable description: Billable ID or identifier. required: false type: string - in: query name: start_at description: Smallest start_at time of returned records. UNIX timestamp or string. required: false - in: query name: end_at description: Largest end_at time of returned records. UNIX timestamp or string. required: false - in: query name: segment description: Segment of the records to return. required: false type: string enum: - drilling - completion - in: query name: totals_by description: Calculate totals grouped by selected value. required: false type: string enum: - app - app_with_cost - dataset - dataset_with_cost - daily - daily_with_cost - billable - billable_with_cost - segment - segment_with_cost responses: '200': description: Successful response schema: $ref: '#/definitions/UsageTotal' /v2/usage/summaries: get: summary: Returns UsageSummary records tags: - Usage parameters: - in: query name: company_id description: Company ID. required: false type: integer - in: query name: billable description: Billable ID or identifier. required: false type: string - in: query name: start_at description: Smallest start_at time of returned records. UNIX timestamp or string. required: false - in: query name: end_at description: Largest end_at time of returned records. UNIX timestamp or string. required: false - in: query name: segment description: Segment of the records to return. required: false type: string enum: - drilling - completion - in: query name: totals_by description: Calculate totals grouped by selected value. required: false type: string enum: - app - dataset - monthly - billable - segment responses: '200': description: Successful response schema: $ref: '#/definitions/UsageSummaryTotal' /v2/workflows: get: summary: List Workflows tags: - Workflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/WorkflowList' parameters: - in: query name: segment description: Workflow segment filter items: type: string - in: query name: company_id description: Workflow company filter items: type: integer - in: query name: allow_empty_company description: While filter by company, allow to add Workflows without company in results type: string enum: - 'true' - 'false' default: 'false' - in: query name: visibility description: Filter by visibility type: string enum: - public - company - private - in: query name: search description: Search workflow by name/caption type: string - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: name,-updated_at' type: array enum: - name - caption - segment - position - created_at - updated_at default: position -updated_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc post: summary: Create a Workflow tags: - Workflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Workflow schema: $ref: '#/definitions/Workflow' parameters: - in: body name: workflow description: Workflow Payload required: true type: object schema: $ref: '#/definitions/WorkflowPayload' /v2/workflows/{id}: get: summary: Show workflow tags: - Workflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/Workflow' parameters: - in: path name: id description: Workflow workflow_key or ID required: true type: string patch: summary: Update a Workflow tags: - Workflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Workflow schema: $ref: '#/definitions/Workflow' parameters: - in: path name: id description: Workflow workflow_key or ID required: true type: string - in: body name: workflow description: Workflow Payload required: true type: object schema: $ref: '#/definitions/WorkflowPayload' delete: summary: Delete a Workflow tags: - Workflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Workflow deleted parameters: - in: path name: id description: Workflow workflow_key or ID required: true type: string /v2/{workflow_id}/workflow_content_blocks: get: summary: List Workflow Content Blocks of a workflow tags: - Workflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/WorkflowContentBlockList' parameters: - in: path name: workflow_id description: Workflow workflow_key or ID required: true type: string post: summary: Create a Workflow Content Block tags: - Workflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Workflow Content Block schema: $ref: '#/definitions/WorkflowContentBlock' parameters: - in: path name: workflow_id description: Workflow workflow_key or ID required: true type: string - in: body name: workflow_content_block description: Workflow Content Block Payload required: true type: object schema: $ref: '#/definitions/WorkflowContentBlockPayload' /v2/{workflow_id}/workflow_content_blocks/{id}: get: summary: Show Workflow Content Block tags: - Workflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/WorkflowContentBlock' parameters: - in: path name: workflow_id description: Workflow workflow_key or ID required: true type: string - in: path name: id description: Workflow Content Block ID required: true type: integer format: int64 patch: summary: Update a Workflow Content Block tags: - Workflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Workflow Content Block schema: $ref: '#/definitions/WorkflowContentBlock' parameters: - in: path name: workflow_id description: Workflow workflow_key or ID required: true type: string - in: path name: id description: Workflow Content Block ID required: true type: integer format: int64 - in: body name: workflow_content_block description: Workflow Content Block Payload required: true type: object schema: $ref: '#/definitions/WorkflowContentBlockPayload' delete: summary: Delete a Workflow Content Block tags: - Workflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Workflow Content Block deleted parameters: - in: path name: workflow_id description: Workflow workflow_key or ID required: true type: string - in: path name: id description: Workflow Content Block ID required: true type: integer format: int64 /v2/{workflow_id}/workflow_apps: get: summary: List Workflow Apps of a Workflow tags: - Workflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/WorkflowAppList' parameters: - in: path name: workflow_id description: Workflow workflow_key or ID required: true type: string put: summary: Update many Workflow Apps tags: - Workflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Workflow Apps schema: $ref: '#/definitions/WorkflowAppList' parameters: - in: path name: workflow_id description: Workflow workflow_key or ID required: true type: string - in: body name: workflow_apps description: Workflow Apps Payload required: true type: object schema: $ref: '#/definitions/WorkflowAppsPayload' /v2/{workflow_id}/workflow_apps/{id}: get: summary: Show Workflow App tags: - Workflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/WorkflowApp' parameters: - in: path name: workflow_id description: Workflow workflow_key or ID required: true type: string - in: path name: id description: Workflow App ID required: true type: integer format: int64 patch: summary: Update a Workflow App tags: - Workflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Workflow App schema: $ref: '#/definitions/WorkflowApp' parameters: - in: path name: workflow_id description: Workflow workflow_key or ID required: true type: string - in: path name: id description: Workflow App ID required: true type: integer format: int64 - in: body name: workflow_app description: Workflow App Payload required: true type: object schema: $ref: '#/definitions/WorkflowAppPayload' /v2/workflow_roles: get: summary: List WorkflowRoles tags: - WorkflowRoles responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/WorkflowRoleList' parameters: - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer /v2/column_mapper_templates: get: summary: Get list of column mapper templates tags: - ColumnMapperTemplates responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List of column mapper templates schema: $ref: '#/definitions/ColumnMapperTemplates' parameters: - in: query name: rig_id description: Filter by Rig ID type: integer - in: query name: intervention_unit_id description: Filter by Intervention Unit ID type: integer - in: query name: search description: Search by column mapper, rig, or intervention unit name type: string - in: query name: per_page description: Number of items to list per page type: integer - in: query name: page description: Number of page type: integer post: summary: Create column mapper template tags: - ColumnMapperTemplates responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created column mapper template schema: $ref: '#/definitions/ColumnMapperTemplate' parameters: - in: body description: Column mapper payload type: object schema: $ref: '#/definitions/CreateColumnMapperTemplatePayload' /v2/column_mapper_templates/{id}: get: summary: Get one column mapper template by ID tags: - ColumnMapperTemplates responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Column mapper template schema: $ref: '#/definitions/ColumnMapperTemplate' parameters: - in: path name: id description: ColumnMapperTemplate ID required: true type: integer format: int64 patch: summary: Update column mapper tags: - ColumnMapperTemplates responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Column mapper template schema: $ref: '#/definitions/ColumnMapperTemplate' parameters: - in: path name: id description: ColumnMapperTemplate ID required: true type: integer format: int64 - in: body description: Column mapper payload type: object schema: $ref: '#/definitions/UpdateColumnMapperTemplatePayload' delete: summary: Delete column mapper tags: - ColumnMapperTemplates responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: ColumnMapperTemplate deleted schema: example: status: deleted parameters: - in: path name: id description: ColumnMapperTemplate ID required: true type: integer format: int64 /v2/column_mapper_templates/{id}/change_rig: patch: summary: Associate a rig with a column mapper template tags: - ColumnMapperTemplates responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Column mapper template rig was updated schema: example: message: updated rig parameters: - in: path name: id description: ColumnMapperTemplate ID required: true type: integer format: int64 - in: body description: Rig association payload type: object schema: properties: rig_id: type: integer format: int64 description: Rig ID example: rig_id: 1111 /v2/column_mapper_templates/{id}/change_intervention_unit: patch: summary: Associate an intervention unit with a column mapper template tags: - ColumnMapperTemplates responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Column mapper template intervention unit was updated schema: example: message: updated intervention unit parameters: - in: path name: id description: ColumnMapperTemplate ID required: true type: integer format: int64 - in: body description: Intervention unit association payload type: object schema: properties: intervention_unit_id: type: integer format: int64 description: Intervention Unit ID example: intervention_unit_id: 1111 /v2/column_mapper_templates/{column_mapper_template_id}/column_mapper_template_channels: post: summary: Create column mapper template channel tags: - ColumnMapperTemplateChannels responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created column mapper template channel schema: $ref: '#/definitions/ColumnMapperTemplateChannel' parameters: - in: path name: column_mapper_template_id description: ColumnMapperTemplate ID required: true type: integer format: int64 - in: body description: Column mapper template channel payload type: object schema: $ref: '#/definitions/CreateColumnMapperTemplateChannelPayload' /v2/column_mapper_templates/{column_mapper_template_id}/column_mapper_template_channels/{id}: patch: summary: Update column mapper template channel tags: - ColumnMapperTemplateChannels parameters: - in: path name: column_mapper_template_id description: ColumnMapperTemplate ID required: true type: integer format: int64 - in: path name: id description: ColumnMapperTemplateChannel ID required: true type: integer format: int64 - in: body description: Column mapper template channel payload type: object schema: $ref: '#/definitions/UpdateColumnMapperTemplateChannelPayload' responses: '200': description: Column mapper template channel schema: $ref: '#/definitions/ColumnMapperTemplateChannel' delete: summary: Delete column mapper tags: - ColumnMapperTemplateChannels parameters: - in: path name: column_mapper_template_id description: ColumnMapperTemplate ID required: true type: integer format: int64 - in: path name: id description: ColumnMapperTemplateChannel ID required: true type: integer format: int64 responses: '200': description: ColumnMapperTemplateChannel deleted schema: example: status: deleted /v2/column_mapper_template_channels/{column_mapper_channel_id}/column_mapper_template_rules: post: summary: Create column mapper template rule tags: - ColumnMapperTemplateRules responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created column mapper template rule schema: $ref: '#/definitions/ColumnMapperTemplateRule' parameters: - in: body description: Column mapper template rule payload type: object schema: $ref: '#/definitions/ColumnMapperTemplateRulePayload' /v2/column_mapper_template_channels/{column_mapper_channel_id}/column_mapper_template_rules/{id}: patch: summary: Update column mapper template rule tags: - ColumnMapperTemplateRules parameters: - in: path name: column_mapper_template_channel_id description: ColumnMapperTemplateChannel ID required: true type: integer format: int64 - in: path name: id description: ColumnMapperTemplateRule ID required: true type: integer format: int64 - in: body description: Column mapper template rule payload type: object schema: $ref: '#/definitions/ColumnMapperTemplateRulePayload' responses: '200': description: Column mapper template rule schema: $ref: '#/definitions/ColumnMapperTemplateRule' delete: summary: Delete column mapper template rule tags: - ColumnMapperTemplateRules parameters: - in: path name: column_mapper_channel_id description: ColumnMapperTemplateChannel ID required: true type: integer format: int64 - in: path name: id description: ColumnMapperTemplateRule ID required: true type: integer format: int64 responses: '200': description: ColumnMapperTemplateRule deleted schema: example: status: deleted /v2/users/{user_id}/dashboards/{dashboard_id}/dashboard_workflows: get: summary: List Dashboard Workflows of a Dashboard tags: - Workflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/DashboardWorkflowList' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: dashboard_id description: Dashboard ID required: true type: integer format: int64 /v2/users/{user_id}/dashboards/{dashboard_id}/dashboard_workflows/{id}: get: summary: Show Dashboard Workflow tags: - Workflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/DashboardWorkflowSingle' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: dashboard_id description: Dashboard ID required: true type: integer format: int64 - in: path name: id description: Dashboard Workflow ID required: true type: integer format: int64 delete: summary: Delete Dashboard Workflow tags: - Workflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Dashboard Workflow deleted parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: dashboard_id description: Dashboard ID required: true type: integer format: int64 - in: path name: id description: Dashboard Workflow ID required: true type: integer format: int64 /v2/users/{user_id}/dashboards/{dashboard_id}/dashboard_workflows/{id}/ungroup: post: summary: Ungroup Dashboard Workflow tags: - Workflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: properties: dashboard_app_ids: type: array items: type: integer example: dashboard_app_ids: - 34 - 12345 - 134 - 256 parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: dashboard_id description: Dashboard ID required: true type: integer format: int64 - in: path name: id description: Dashboard Workflow ID required: true type: integer format: int64 /v2/users/{user_id}/dashboards/{dashboard_id}/dashboard_workflows/ungroup_all: post: summary: Ungroup All Dashboard Workflows for Dashboard tags: - Workflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: properties: dashboard_app_ids: type: array items: type: integer example: dashboard_app_ids: - 34 - 12345 - 134 - 256 parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: dashboard_id description: Dashboard ID required: true type: integer format: int64 /v2/users/{user_id}/dashboards/{dashboard_id}/dashboard_workflows/{id}/change_asset: put: summary: Change Asset of Dashboard Workflows and related Dashboard Apps tags: - Workflows responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/DashboardWorkflowSingle' parameters: - in: path name: user_id description: User ID required: true type: integer format: int64 - in: path name: dashboard_id description: Dashboard ID required: true type: integer format: int64 - in: path name: id description: Dashboard Workflow ID required: true type: integer format: int64 - in: body name: new_asset description: New Assets required: true type: object schema: properties: new_asset: type: object properties: assetId: type: integer rigId: type: integer fracFleetId: type: integer padId: type: integer wellId: type: integer replacedAssetId: type: integer /v1/competitor_analysis/statistics: get: summary: Get Competitor Analysis statistics tags: - CompetitorAnalysis responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/CompetitorStatsData' parameters: - in: query name: asset_id description: Asset ID required: true type: integer format: int64 - in: query name: radius description: Filter by radius required: true type: float - in: query name: keys description: Metric keys required: true items: type: string - in: query name: type description: Metrics type required: true type: float enum: - asset - well_section - bha - in: query name: rig_release description: Filter by rig release required: false type: string enum: - last_month - last_3_months - last_6_months - last_9_months - last_year - in: query name: target_formations description: Target Formations items: type: string - in: query name: string_designs description: String Designs items: type: string - in: query name: wells_number description: Number of wells to return stats for (500 max) required: false type: integer /v2/app_companies: get: summary: List companies which have access to Apps tags: - Company - Apps responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response schema: $ref: '#/definitions/CompanyListStructure' /v2/app_store_templates: get: summary: List AppStoreTemplates tags: - AppStoreTemplates responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppStoreTemplateList' parameters: - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: name,-updated_at' type: string enum: - title - status - created_at - updated_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc - in: query name: view_type description: Filter by view_type type: string enum: - drilling - discover - completion - geoscience post: summary: Create a AppStoreTemplate tags: - AppStoreTemplates responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created AppStoreTemplate schema: $ref: '#/definitions/AppStoreTemplateObject' parameters: - in: body name: workflow description: AppStoreTemplate Payload required: true type: object schema: $ref: '#/definitions/AppStoreTemplatePayload' /v2/app_store_templates/{id}: get: summary: Show AppStoreTemplate tags: - AppStoreTemplates responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppStoreTemplateObject' parameters: - in: path name: id description: AppStoreTemplate ID required: true type: integer format: int64 patch: summary: Update a AppStoreTemplate tags: - AppStoreTemplates responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated AppStoreTemplate schema: $ref: '#/definitions/AppStoreTemplateObject' parameters: - in: path name: id description: AppStoreTemplate ID required: true type: integer format: int64 - in: body name: workflow description: AppStoreTemplate Payload required: true type: object schema: $ref: '#/definitions/AppStoreTemplateObject' delete: summary: Delete a AppStoreTemplate tags: - AppStoreTemplates responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: AppStoreTemplate deleted parameters: - in: path name: id description: AppStoreTemplate ID required: true type: integer /v2/app_store_template_sections: get: summary: List AppStoreTemplateSections tags: - AppStoreTemplateSections responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppStoreTemplateSectionList' parameters: - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: name,-updated_at' type: string enum: - title - status - created_at - updated_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc - in: query name: title description: Filter by title type: string - in: query name: section_type description: Filter by section_type type: string enum: - section - slide - in: query name: view_type description: Filter by view_type type: string enum: - drilling - discover - completion - geoscience post: summary: Create a AppStoreTemplateSection tags: - AppStoreTemplateSections responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created AppStoreTemplate schema: $ref: '#/definitions/AppStoreTemplateSectionObject' parameters: - in: body name: workflow description: AppStoreTemplateSection Payload required: true type: object schema: $ref: '#/definitions/AppStoreTemplateSectionPayload' /v2/app_store_template_section/{id}: get: summary: Show AppStoreTemplateSection tags: - AppStoreTemplateSections responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppStoreTemplateSectionObject' parameters: - in: path name: id description: AppStoreTemplateSection ID required: true type: integer format: int64 patch: summary: Update a AppStoreTemplateSection tags: - AppStoreTemplateSections responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated AppStoreTemplateSection schema: $ref: '#/definitions/AppStoreTemplateSectionObject' parameters: - in: path name: id description: AppStoreTemplateSection ID required: true type: integer format: int64 - in: body name: workflow description: AppStoreTemplateSection Payload required: true type: object schema: $ref: '#/definitions/AppStoreTemplateSectionPayload' delete: summary: Delete a AppStoreTemplateSection tags: - AppStoreTemplateSections responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: AppStoreTemplateSection deleted parameters: - in: path name: id description: AppStoreTemplateSection ID required: true type: integer /v2/app_store_articles: get: summary: List AppStoreArticles tags: - AppStoreArticles responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppStoreArticleList' parameters: - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: name,-updated_at' type: string enum: - caption - name - created_at - updated_at - in: query name: visibility description: Filter by visibility required: false type: string enum: - public - private - in: query name: search description: Search by caption, name required: false type: string - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc post: summary: Create a AppStoreArticle tags: - AppStoreArticles responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created AppStoreArticle schema: $ref: '#/definitions/AppStoreArticleObject' parameters: - in: body name: app_store_article description: AppStoreArticle Payload required: true type: object schema: $ref: '#/definitions/AppStoreArticlePayload' /v2/app_store_articles/{id}: get: summary: Show AppStoreArticle tags: - AppStoreArticles responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppStoreArticleObject' parameters: - in: path name: id description: AppStoreArticle article_key or ID required: true type: string patch: summary: Update a AppStoreArticle tags: - AppStoreArticles responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated AppStoreArticle schema: $ref: '#/definitions/AppStoreArticleObject' parameters: - in: path name: id description: AppStoreArticle article_key or ID required: true type: string - in: body name: app_store_article description: AppStoreArticle Payload required: true type: object schema: $ref: '#/definitions/AppStoreArticlePayload' delete: summary: Delete a AppStoreArticle tags: - AppStoreArticles responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: AppStoreArticle deleted parameters: - in: path name: id description: AppStoreArticle article_key or ID required: true type: string /v2/app_store_articles/{id}/remove_section: patch: summary: Remove Section from AppStoreArticle tags: - AppStoreArticles responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: AppStoreTemplateSection removed from Article parameters: - in: path name: id description: AppStoreArticle article_key or ID required: true type: string - in: body name: app_store_template_section_id description: AppStoreTemplateSection ID required: true type: integer format: int64 /v2/signed_url: get: summary: Get signed_url from S3 tags: - SignedUrl responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Forbidden schema: properties: code: type: integer message: type: string example: code: 403 message: Forbidden '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: properties: signed_url: type: string file_name: type: string display_name: type: string bucket: type: string cdn_url: type: string example: signed_url: https://s3.amazonaws.com/cdn.corva.ai/provider_9/1649168990/foobar.jpg?X-Amz-Expires=900 file_name: provider/video.mp4 display_name: video.mp4 bucket: cdn.bucket cdn_url: https://qwerty.cloudfront.net '400': type: object description: Failure response schema: properties: code: type: integer message: type: string example: code: 400 message: Missing file_name param parameters: - in: query name: file_name description: file_name of attachment required: true type: string - in: query name: folder description: Folder for files required: true type: string enum: - app_store_articles - app_help_contents - workflows /v2/dataset_audits: get: summary: List Dataset Audits tags: - Audits responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/DatasetAuditList' parameters: - in: query name: action_name description: Search by action type: string - in: query name: user_email description: Searches by user email type: string - in: query name: start description: Filter by event time (Unix timestamp) type: integer format: timestamp - in: query name: end description: Filter by event time (Unix timestamp) type: integer format: timestamp - in: query name: permission_workflow description: Filter by Permission column type: string enum: - read - write - read_and_write - delete - in: query name: name description: Searches by dataset name type: string - in: query name: company_id description: Filter by company type: integer - in: query name: data_type description: Filter by data_type type: string - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: action, -created_at' type: string enum: - action - created_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc /v2/permission_audits: get: summary: List Permission Audits tags: - Audits responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/PermissionAuditList' parameters: - in: query name: action_name description: Search by action type: string - in: query name: user_email description: Searches by user email type: string - in: query name: ability description: Search by ability type: string - in: query name: owner_name description: Search by owner name type: string - in: query name: company_id description: Filter by company type: integer - in: query name: start description: Search by start time as a Unix timestamp type: integer format: timestamp - in: query name: end description: Search by end time as a Unix timestamp type: integer format: timestamp - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: action, -created_at' type: string enum: - action - created_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc /v2/group_membership_audits: get: summary: List Group Membership Audits tags: - Audits responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/GroupMembershipAuditList' parameters: - in: query name: action_name description: Search by action (add, remove) type: string - in: query name: user_email description: Searches by performer email type: string - in: query name: target_user_email description: Search by target user email type: string - in: query name: group_name description: Search by group name type: string - in: query name: company_id description: Filter by company type: integer - in: query name: start description: Search by start time as a Unix timestamp type: integer format: timestamp - in: query name: end description: Search by end time as a Unix timestamp type: integer format: timestamp - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: action, -created_at' type: string enum: - action - created_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc /v2/provisioning_subscription_audits: get: summary: List ProvisioningSubscription Audits tags: - Audits responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/ProvisioningSubscriptionAuditList' parameters: - in: query name: action_name description: Search by action type: string - in: query name: user_email description: Searches by user email type: string - in: query name: status description: Filter by status type: string - in: query name: segment description: Filter by segment type: string - in: query name: company_id description: Filter by company type: integer - in: query name: start description: Search by start time as a Unix timestamp type: integer format: timestamp - in: query name: end description: Search by end time as a Unix timestamp type: integer format: timestamp - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: action, -created_at' type: string enum: - action - created_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc /v2/platform_subscription_audits: get: summary: List PlatformSubscription Audits tags: - Audits responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/PlatformSubscriptionAuditList' parameters: - in: query name: action_name description: Search by action type: string - in: query name: user_email description: Searches by user email type: string - in: query name: status description: Filter by status type: string - in: query name: segment description: Filter by segment type: string - in: query name: company_id description: Filter by company type: integer - in: query name: start description: Search by start time as a Unix timestamp type: integer format: timestamp - in: query name: end description: Search by end time as a Unix timestamp type: integer format: timestamp - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: action, -created_at' type: string enum: - action - created_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc /v2/purchase_subscription_audits: get: summary: List PurchaseSubscription Audits tags: - Audits responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/PurchaseSubscriptionAuditList' parameters: - in: query name: action_name description: Search by action type: string - in: query name: user_email description: Searches by user email type: string - in: query name: status description: Filter by status type: string - in: query name: segment description: Filter by segment type: string - in: query name: company_id description: Filter by company type: integer - in: query name: start description: Search by start time as a Unix timestamp type: integer format: timestamp - in: query name: end description: Search by end time as a Unix timestamp type: integer format: timestamp - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: action, -created_at' type: string enum: - action - created_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc /v2/events/publish: post: summary: Publish Events tags: - Event - Audit responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response '400': type: object description: Failure response schema: $ref: '#/definitions/EventFailureResponse' parameters: - in: body name: payload description: Payload required: true type: object schema: $ref: '#/definitions/EventPayload' /v2/usage_analytics/app_usage: get: summary: Get Total App Usage Statistics tags: - AppUsage responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/TotalAppUsageList' parameters: - in: query name: group_by description: Group results by some columns required: false type: string enum: - app_name - user_id - well_id - rig_id - pad_id - fleet_id - drillout_unit_id - in: query name: segment description: Filter by segment required: false type: string - in: query name: company_id description: Filter by company_id type: integer - in: query name: user_email description: Filter by user_email (accepts only full email) type: string - in: query name: program_id description: Filter by program_id type: array - in: query name: asset_id description: Filter by asset_id type: array - in: query name: well_id description: Filter by well_id type: array - in: query name: pad_id description: Filter by pad_id type: array - in: query name: fleet_id description: Filter by fleet_id type: array - in: query name: rig_id description: Filter by rig_id type: array - in: query name: drillout_unit_id description: Filter by drillout_unit_id type: array - in: query name: device_family description: Filter by device_family type: array - in: query name: os_family description: Filter by os_family type: array - in: query name: useragent_family description: Filter by useragent_family type: array - in: query name: corva_v3 description: Filter by corva_v3 type: boolean - in: query name: corva_next description: Filter by corva_next (iOS app) type: boolean - in: query name: user_group description: Filter by user_group emails type: string enum: - corva - clients - in: query name: device_type description: Filter by device_type type: string enum: - web - web3 - corva_next - in: query name: start description: Search by start time as a Unix timestamp type: integer format: timestamp - in: query name: end description: Search by end time as a Unix timestamp type: integer format: timestamp /v2/usage_analytics/app_usage/usage_list: get: summary: Get App Usage Statistics by user tags: - AppUsage responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppUsageByUserList' parameters: - in: query name: app_name description: Filter by app name required: true type: string - in: query name: start description: Search by start time as a Unix timestamp type: integer format: timestamp - in: query name: end description: Search by end time as a Unix timestamp type: integer format: timestamp - in: query name: company_id description: Filter by company_id type: integer - in: query name: user_email description: Filter by user_email (accepts only full email) type: string - in: query name: program_id description: Filter by program_id type: array - in: query name: asset_id description: Filter by asset_id type: array - in: query name: well_id description: Filter by well_id type: array - in: query name: pad_id description: Filter by pad_id type: array - in: query name: fleet_id description: Filter by fleet_id type: array - in: query name: rig_id description: Filter by rig_id type: array - in: query name: drillout_unit_id description: Filter by drillout_unit_id type: array - in: query name: device_type description: Filter by device_type type: string enum: - web - web3 - corva_next - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: -event_sum' type: string enum: - event_sum - in: query name: order description: A sorting direction type: string enum: - asc - desc default: desc - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer /v2/usage_analytics/app_usage/view_date_list: get: summary: Get App Usage Statistics day by day tags: - AppUsage responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppUsageByViewDateList' parameters: - in: query name: app_name description: Filter by app name required: true type: string - in: query name: group_by description: Group results by some columns required: false type: string enum: - app_name - user_id - well_id - rig_id - pad_id - fleet_id - drillout_unit_id - in: query name: company_id description: Filter by company_id type: integer - in: query name: user_email description: Filter by user_email (accepts only full email) type: string - in: query name: program_id description: Filter by program_id type: array - in: query name: asset_id description: Filter by asset_id type: array - in: query name: well_id description: Filter by well_id type: array - in: query name: pad_id description: Filter by pad_id type: array - in: query name: fleet_id description: Filter by fleet_id type: array - in: query name: rig_id description: Filter by rig_id type: array - in: query name: drillout_unit_id description: Filter by drillout_unit_id type: array - in: query name: device_type description: Filter by device_type type: string enum: - web - web3 - corva_next - in: query name: start description: Search by start time as a Unix timestamp type: integer format: timestamp - in: query name: end description: Search by end time as a Unix timestamp type: integer format: timestamp /v2/usage_analytics/app_usage/top_apps: get: summary: Get Top App Usage Statistics tags: - AppUsage responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppUsageTopAppsList' parameters: - in: query name: segment description: Filter by segment required: false type: string - in: query name: company_id description: Filter by company_id type: integer - in: query name: program_id description: Filter by program_id type: array - in: query name: asset_id description: Filter by asset_id type: array - in: query name: well_id description: Filter by well_id type: array - in: query name: pad_id description: Filter by pad_id type: array - in: query name: fleet_id description: Filter by fleet_id type: array - in: query name: rig_id description: Filter by rig_id type: array - in: query name: drillout_unit_id description: Filter by drillout_unit_id type: array - in: query name: device_type description: Filter by device_type type: string enum: - web - web3 - corva_next - in: query name: start description: Search by start time as a Unix timestamp type: integer format: timestamp - in: query name: end description: Search by end time as a Unix timestamp type: integer format: timestamp - in: query name: limit description: Number of top apps to return (10, 20, or 30) required: false type: integer enum: - 10 - 20 - 30 default: 10 /v2/usage_analytics/app_usage/top_users: get: summary: Get Top Users Usage Statistics tags: - AppUsage responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppUsageByUserList' parameters: - in: query name: segment description: Filter by segment required: false type: string - in: query name: company_id description: Filter by company_id type: integer - in: query name: program_id description: Filter by program_id type: array - in: query name: asset_id description: Filter by asset_id type: array - in: query name: well_id description: Filter by well_id type: array - in: query name: pad_id description: Filter by pad_id type: array - in: query name: fleet_id description: Filter by fleet_id type: array - in: query name: rig_id description: Filter by rig_id type: array - in: query name: drillout_unit_id description: Filter by drillout_unit_id type: array - in: query name: device_type description: Filter by device_type type: string enum: - web - web3 - corva_next - in: query name: start description: Search by start time as a Unix timestamp type: integer format: timestamp - in: query name: end description: Search by end time as a Unix timestamp type: integer format: timestamp - in: query name: limit description: Number of top users to return (10, 20, or 30) required: false type: integer enum: - 10 - 20 - 30 default: 10 /v2/usage_analytics/app_usage/total_usage_trend: get: summary: Get Total AppUsage for each view_date tags: - AppUsage responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/TotalAppUsageTrend' parameters: - in: query name: company_ids description: Filter by company_ids type: array - in: query name: app_names description: Filter by app_names type: array - in: query name: user_group description: Filter by user_group emails type: string enum: - corva - clients - in: query name: device_type description: Filter by device_type type: string enum: - web - web3 - corva_next - in: query name: start description: Search by start time as a Unix timestamp type: integer format: timestamp - in: query name: end description: Search by end time as a Unix timestamp type: integer format: timestamp - in: query name: segment description: Filter by segment required: false type: string - in: query name: program_id description: Filter by program_id type: array - in: query name: asset_id description: Filter by asset_id type: array - in: query name: well_id description: Filter by well_id type: array - in: query name: pad_id description: Filter by pad_id type: array - in: query name: fleet_id description: Filter by fleet_id type: array - in: query name: rig_id description: Filter by rig_id type: array - in: query name: drillout_unit_id description: Filter by drillout_unit_id type: array /v2/partial_reruns: get: summary: List Partial Well Reruns tags: - PartialWellReruns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List of Partial Well Reruns schema: properties: data: type: array items: $ref: '#/definitions/PartialWellRerun' parameters: - in: query name: status description: Filter by multiple statuses items: type: string enum: - initialized - running - pending_merge - merge_initialized - merging - failed - stopped - completed - in: query name: company_id description: Filter by company_id type: integer - in: query name: rig_id description: Filter by rig_id type: integer - in: query name: start_timestamp description: Filter runs that started later than start_timestamp. start_timestamp is in seconds type: integer - in: query name: user_email description: Filter by user email. Can filter by parts of email type: string - in: query name: well_id description: Filter by source's and target's well id type: integer - in: query name: start description: Unix timestamp in seconds that filters reruns by created date and are created later than param specified type: integer - in: query name: end description: Unix timestamp in seconds that filters reruns by created date and are created before than param specified type: integer - in: query name: mergeable description: Filter by mergeable status type: boolean - in: query name: order description: Order partial well reruns by 'asc' or 'desc' type: string - in: query name: sort description: Available sort values - id, company, rig, source_well_name, target_well_name, start_timestamp, status, created_at type: string /v2/partial_reruns/list: post: summary: List Partial Well Reruns tags: - PartialWellReruns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List of Partial Well Reruns schema: properties: data: type: array items: $ref: '#/definitions/PartialWellRerun' parameters: - in: body name: status description: Filter by status type: string enum: - initialized - running - pending_merge - merge_initialized - merging - failed - stopped - completed - in: body name: company_id description: Filter by company_id type: integer - in: body name: rig_id description: Filter by rig_id type: integer - in: body name: start_timestamp description: Filter runs that started later than start_timestamp. start_timestamp is in seconds type: integer - in: body name: user_email description: Filter by user email. Can filter by parts of email type: string - in: body name: start description: Unix timestamp in seconds that filters reruns by created date and are created later than param specified type: integer - in: body name: end description: Unix timestamp in seconds that filters reruns by created date and are created before than param specified type: integer - in: body name: well_id description: Filter by source's and target's well id type: integer - in: body name: mergeable description: Filter by mergeable status type: boolean - in: body name: order description: Order partial well reruns by 'asc' or 'desc' type: string - in: body name: sort description: Available sort values - id, company, rig, source_well_name, target_well_name, start_timestamp, status, created_at type: string /v2/partial_reruns/{id}: get: summary: Show Partial Well Rerun tags: - PartialWellReruns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Partial Well Rerun schema: $ref: '#/definitions/PartialWellRerunFull' parameters: - in: path name: id description: Partial Well Rerun ID required: true type: integer format: int64 patch: summary: Update Partial Well Rerun tags: - PartialWellReruns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Partial Well Rerun schema: $ref: '#/definitions/PartialWellRerun' parameters: - in: path name: id description: Partial Well Rerun ID required: true type: integer format: int64 - in: body name: rerun description: PartialWellRerun Payload required: true type: object schema: $ref: '#/definitions/UpdatePartialWellRerunPayload' /v2/partial_reruns/{id}/start_merging: patch: summary: Start rerun merging tags: - PartialWellReruns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Partial Well Rerun schema: $ref: '#/definitions/PartialWellRerun' parameters: - in: path name: id description: Partial Well Rerun ID required: true type: integer format: int64 /v2/partial_reruns/{id}/resume: patch: summary: Change rerun status to synchronizing_streams tags: - PartialWellReruns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Partial Well Rerun schema: $ref: '#/definitions/PartialWellRerun' parameters: - in: path name: id description: Partial Well Rerun ID required: true type: integer format: int64 /v2/partial_reruns/{id}/stop: patch: summary: Change rerun status to stop tags: - PartialWellReruns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Partial Well Rerun schema: $ref: '#/definitions/PartialWellRerun' parameters: - in: path name: id description: Partial Well Rerun ID required: true type: integer format: int64 /v2/partial_reruns/{id}/fail: patch: summary: Change rerun status to failed tags: - PartialWellReruns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Partial Well Rerun schema: $ref: '#/definitions/PartialWellRerun' parameters: - in: path name: id description: Partial Well Rerun ID required: true type: integer format: int64 /v2/partial_reruns/{id}/cancel: patch: summary: Change rerun status to canceled tags: - PartialWellReruns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Partial Well Rerun schema: $ref: '#/definitions/PartialWellRerun' parameters: - in: path name: id description: Partial Well Rerun ID required: true type: integer format: int64 /v2/partial_reruns/{id}/restart: patch: summary: Restart partial rerun, which will change its status to running tags: - PartialWellReruns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Partial Well Rerun schema: $ref: '#/definitions/PartialWellRerun' parameters: - in: path name: id description: Partial Well Rerun ID required: true type: integer format: int64 /v2/partial_reruns/{id}/app_progress/{app_id}: get: summary: Show Partial Well Rerun App Progress tags: - PartialWellReruns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Partial Well Rerun schema: $ref: '#/definitions/PartialWellRerunAppProgress' parameters: - in: path name: id description: Partial Well Rerun ID required: true type: integer format: int64 - in: path name: app_id description: App ID required: true type: integer format: int64 patch: summary: Update Partial Well Rerun App Progress tags: - PartialWellReruns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Partial Well Rerun schema: $ref: '#/definitions/PartialWellRerunAppProgress' parameters: - in: path name: id description: Partial Well Rerun ID required: true type: integer format: int64 - in: path name: app_id description: App ID required: true type: integer format: int64 - in: body name: app_progress description: PartialWellRerunAppProgress Payload required: true type: object schema: $ref: '#/definitions/UpdatePartialWellRerunAppProgressPayload' /v2/wells/{well_id}/partial_reruns: post: summary: Create Partial Well Rerun tags: - PartialWellReruns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Partial Well Rerun schema: $ref: '#/definitions/PartialWellRerun' '412': description: Well is missing drilling#time stream schema: properties: code: type: integer message: type: string example: code: 412 message: No drilling time app stream found for the asset parameters: - in: path name: well_id description: Well ID required: true type: integer format: int64 - in: body name: rerun description: PartialWellRerun Payload required: true type: object schema: $ref: '#/definitions/CreatePartialWellRerunPayload' - in: body name: target_well_name description: Target Well's name required: false type: string - in: body name: enable_alerts description: Enable alerts for target well required: false type: boolean /v2/partial_reruns/{partial_rerun_id}/app_progresses/{id}: get: summary: Show Partial Rerun App Progress tags: - PartialWellRerunAppProgresses responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Partial Well Rerun App Progress schema: $ref: '#/definitions/PartialWellRerunAppProgress' parameters: - in: path name: partial_rerun_id description: Partial Well Rerun ID required: true type: integer format: int64 - in: path name: id description: App Progress ID required: true type: integer format: int64 patch: summary: Update Partial Rerun App Progress tags: - PartialWellRerunAppProgresses responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Well Rerun App Progress schema: $ref: '#/definitions/PartialWellRerunAppProgress' parameters: - in: path name: partial_rerun_id description: Partial Well Rerun ID required: true type: integer format: int64 - in: path name: id description: App Progress ID required: true type: integer format: int64 - in: body name: app_progress description: PartialWellRerunAppProgress Payload required: true type: object schema: $ref: '#/definitions/UpdatePartialWellRerunAppProgressPayload' /v2/partial_reruns/{partial_rerun_id}/app_progresses/{id}/restart: patch: summary: Restart Partial Rerun App Progress tags: - PartialWellRerunAppProgresses responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Restarted Well Rerun App Progress schema: $ref: '#/definitions/PartialWellRerunAppProgress' parameters: - in: path name: partial_rerun_id description: Partial Well Rerun ID required: true type: integer format: int64 - in: path name: id description: App Progress ID required: true type: integer format: int64 /v2/search_suggestions: get: summary: Search suggestions for App, Workflow and Article tags: - SearchSuggestions responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/SearchSuggestionResult' parameters: - in: query name: search description: Search keyword to filter results type: string /v1/companies: get: summary: List of Companies tags: - Company responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/CompanyV1List' parameters: - in: query name: existing_partial_reruns description: Filter by existing partial reruns type: boolean - in: query name: provider description: Filter by provider (string or array of strings) type: array items: type: string - in: query name: search description: Search by name type: string - in: query name: ids description: Filter by company IDs (array or comma-separated string) type: array items: type: integer format: int64 - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer /v1/company/{id}: get: summary: Show Company by ID tags: - Company responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': type: object description: Forbidden schema: properties: code: type: integer message: type: string '404': type: object description: Not found schema: properties: code: type: integer message: type: string '200': type: object description: Successful response schema: $ref: '#/definitions/CompanyV1' parameters: - in: path name: id description: Company ID required: true type: integer format: int64 /v1/company: get: summary: Show current user Company tags: - Company responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/CompanyV1' patch: summary: Update Company tags: - Company responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/CompanyV1' '400': type: object description: Failure response schema: properties: code: type: integer message: type: string example: code: 400 message: Name can't be blank parameters: - in: body name: company description: Company Payload required: true type: object schema: $ref: '#/definitions/CompanyV1Payload' - in: body name: unit_system description: Company unit_system required: false type: object schema: $ref: '#/definitions/CompanyV1UnitSystemParam' /v2/goals: get: summary: List Company Goals if no filters applied tags: - Goals responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: items: $ref: '#/definitions/Goal' parameters: - in: query name: owner_id description: Filter by owner ID type: integer format: int64 - in: query name: owner_type description: Filter owner type type: string enum: - Program - Well - Company - Rig - InterventionUnit - InterventionUnitEvent - in: query name: goal_type description: Filter by goal type type: string enum: - company - program - well - rig - well_section - casing - intervention_unit - intervention_unit_event - in: query name: name description: Filter by name. Available only when goal_type is casing or well_section type: string - in: query name: company_id description: Filter by company_id type: integer format: int64 - in: query name: include_wells description: Filter goals by Well owner_type. Include well association in response type: boolean post: summary: Create a Goal tags: - Goals responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Goal schema: $ref: '#/definitions/Goal' parameters: - in: body name: goal description: Goal Payload required: true type: object schema: $ref: '#/definitions/GoalCreatePayload' /v2/goals/{id}: patch: summary: Update a Goal tags: - Goals responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Goal schema: $ref: '#/definitions/Goal' parameters: - in: path name: id description: Goal ID required: true type: integer format: int64 - in: body name: goal description: Goal Payload required: true type: object schema: $ref: '#/definitions/GoalUpdatePayload' delete: summary: Delete a Goal tags: - Goals responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Deleted Goal schema: example: status: deleted parameters: - in: path name: id description: Goal ID required: true type: integer format: int64 /v2/projects: get: summary: List Projects tags: - Projects responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/ProjectList' parameters: - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: name,-updated_at' type: string enum: - status - created_at - updated_at default: updated_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: desc - in: query name: status description: Filter by status type: string enum: - active - archived post: summary: Create a Project tags: - Projects responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Project schema: $ref: '#/definitions/ProjectObject' parameters: - in: body name: project description: Project Payload required: true type: object schema: $ref: '#/definitions/ProjectPayload' /v2/projects/{id}: get: summary: Show Project tags: - Projects responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/ProjectObject' parameters: - in: path name: id description: Project ID required: true type: integer format: int64 patch: summary: Update a Project tags: - Projects responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Project schema: $ref: '#/definitions/ProjectObject' parameters: - in: path name: id description: Project ID required: true type: integer format: int64 - in: body name: project description: Project Payload required: true type: object schema: $ref: '#/definitions/ProjectPayload' delete: summary: Delete a Project tags: - Projects responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Project deleted parameters: - in: path name: id description: Project ID required: true type: integer post: summary: Clone a Project tags: - Projects responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Cloned Project schema: $ref: '#/definitions/ProjectObject' parameters: - in: path name: id description: Project ID required: true type: integer format: int64 /v2/projects/{project_id}/project_folders: get: summary: List ProjectFolders tags: - ProjectFolders responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/ProjectFolderList' parameters: - in: path name: project_id description: Project ID required: true type: integer format: int64 - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: name,-updated_at' type: string enum: - name - created_at - updated_at default: name - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc post: summary: Create a ProjectFolder tags: - ProjectFolders responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created ProjectFolder schema: $ref: '#/definitions/ProjectFolderObject' parameters: - in: path name: project_id description: Project ID required: true type: integer format: int64 - in: body name: project_folder description: ProjectFolder Payload required: true type: object schema: $ref: '#/definitions/ProjectFolderPayload' /v2/projects/{project_id}/project_folders/{id}: get: summary: Show ProjectFolder tags: - ProjectFolders responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/ProjectFolderObject' parameters: - in: path name: project_id description: Project ID required: true type: integer format: int64 - in: path name: id description: ProjectFolder ID required: true type: integer format: int64 patch: summary: Update a ProjectFolder tags: - ProjectFolders responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated ProjectFolder schema: $ref: '#/definitions/ProjectFolderObject' parameters: - in: path name: project_id description: Project ID required: true type: integer format: int64 - in: path name: id description: ProjectFolder ID required: true type: integer format: int64 - in: body name: project_folder description: ProjectFolder Payload required: true type: object schema: $ref: '#/definitions/ProjectFolderPayload' delete: summary: Delete a ProjectFolder tags: - ProjectFolders responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: ProjectFolder deleted parameters: - in: path name: project_id description: Project ID required: true type: integer format: int64 - in: path name: id description: ProjectFolder ID required: true type: integer /v2/project_folders/{project_folder_id}/project_files: get: summary: List ProjectFile tags: - ProjectFiles responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/ProjectFileList' parameters: - in: path name: project_folder_id description: ProjectFolder ID required: true type: integer format: int64 - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: name,-updated_at' type: string enum: - name - created_at - updated_at default: name - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc post: summary: Create a ProjectFile tags: - ProjectFiles responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created ProjectFile schema: $ref: '#/definitions/ProjectFileObject' parameters: - in: path name: project_folder_id description: ProjectFolder ID required: true type: integer format: int64 - in: body name: project_file description: ProjectFile Payload required: true type: object schema: $ref: '#/definitions/ProjectFilePayload' /v2/project_folders/{project_folder_id}/project_files/{id}: get: summary: Show ProjectFile tags: - ProjectFiles responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/ProjectFileObject' parameters: - in: path name: project_folder_id description: ProjectFolder ID required: true type: integer format: int64 - in: path name: id description: ProjectFile ID required: true type: integer format: int64 patch: summary: Update a ProjectFile tags: - ProjectFiles responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated ProjectFile schema: $ref: '#/definitions/ProjectFileObject' parameters: - in: path name: project_folder_id description: ProjectFolder ID required: true type: integer format: int64 - in: path name: id description: ProjectFile ID required: true type: integer format: int64 - in: body name: project_file description: ProjectFile Payload required: true type: object schema: $ref: '#/definitions/ProjectFilePayload' delete: summary: Delete a ProjectFile tags: - ProjectFiles responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: ProjectFile deleted parameters: - in: path name: project_folder_id description: ProjectFolder ID required: true type: integer format: int64 - in: path name: id description: ProjectFile ID required: true type: integer /v2/integration/registered_models: get: summary: Show list of Registered Models tags: - RegisteredModels responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List of Registered Models schema: type: object properties: data: type: array description: Registered Models that match the search criteria items: properties: model: type: object properties: name: type: string creation_timestamp: type: integer last_updated_timestamp: type: integer latest_versions: type: array items: type: object properties: name: type: string version: type: string current_stage: type: string aliases: type: array items: properties: alias: type: string version: type: string metadata: type: object properties: name: type: string company_ids: type: object asset_ids: type: array example: data: - model: name: model_name creation_timestamp: 1710260937079 last_updated_timestamp: 1710268556343 latest_versions: - name: model_name1 version: '4' current_stage: None version: name: corva-haynesville-multi version: 1 creation_timestamp: 1711479723420 last_updated_timestamp: 1711479723420 current_stage: None description: '' source: mlflow-artifacts:/0/10a0b6365b4a4ae09b3478e675c3d0f9/artifacts/sk_learn run_id: 10a0b6365b4a4ae09b3478e675c3d0f9 status: READY run_link: '' metadata: orientation: lateral asset_ids: - 88843773 formations: Haynesville: 54 company_names: Rockcliff Energy: 54 company_ids: '36': 54 basins: Carthage (Haynesville): 53 Carthage (Cotton Valley): 1 rigs: H&P 475: 13 Nabors X17: 11 wells: - H&P 475, Abney-T.P. Smith HV Unit A 1H - 'H&P 475, Abney-T.P. Smith HV Unit B 2H ' major_company_name: rockcliff-energy major_formation: haynesville major_basin: carthage--haynesville- dataset_save_location: datasets/rockcliff_haynesville_assets/preprocessed/_lateral model_save_location: models/rockcliff-energy/carthage--haynesville-/lateral/haynesville/haynesville_gbt_reg_model target_feature_name: rop split_train_test_random_seed: 12345 timestamp_range: null major_company_id: '36' parameters: - in: query name: filter type: string description: Filter by model name - in: query name: uuid type: string description: Filter by model name example: name1,name2 - in: query name: alias type: string description: Filter by model alias (e.g., "qa" or "prod") - in: query name: company_id type: string description: Filter by company ID - in: query name: asset_id type: string description: Filter by asset ID - in: query name: basin type: string description: Filter by basin name - in: query name: max_results type: integer description: Limit number of items, Default is 100. Max threshold is 1000. - in: query name: order_by type: array description: List of columns for ordering search results - in: query name: page_token type: string description: Next page token - in: query name: force type: boolean description: Use to force request MLFlow API instead of cache /v1/app_schedules: post: summary: Create App schedule tags: - AppSchedule parameters: - in: body name: app_schedule description: App Schedule payload required: true type: object schema: $ref: '#/definitions/CreateAppSchedulePayload' responses: '200': type: object description: Successful response schema: $ref: '#/definitions/AppSchedule' /v1/app_schedules/bulk_update_status: post: summary: Bulk update status for list of App Schedule tags: - AppSchedule parameters: - in: body name: schedule_ids description: App Schedule ids type: array example: - '123' - '1345' - '22' required: true - in: body name: status description: App Schedule status example: completed required: true responses: '200': type: object description: Successful response schema: properties: status: type: string example: status: OK /v1/app_schedules/{id}: get: summary: Retrieve App schedules tags: - AppSchedule responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppSchedule' parameters: - in: path name: id description: App schedule ID required: true type: integer format: int64 patch: summary: Update app schedule tags: - AppSchedule responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/AppSchedule' parameters: - in: path name: id description: App Schedule ID required: true type: integer format: int64 - in: body name: app_schedule description: App Schedule payload required: true type: object schema: $ref: '#/definitions/UpdateAppSchedulePayload' delete: summary: Delete app schedule tags: - AppSchedule responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: properties: status: type: string example: status: deleted parameters: - in: path name: id description: App Schedule ID required: true type: integer format: int64 /v2/package_audits: get: summary: List Package Audits tags: - Audits responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/PackageAuditList' parameters: - in: query name: action_name description: Filter by action type: string - in: query name: user_email description: Searches by user email type: string - in: query name: status description: Filter by status type: string - in: query name: company_id description: Filter by company type: integer - in: query name: app_name description: Filter by app name type: string - in: query name: start description: Search by start time as a Unix timestamp type: integer format: timestamp - in: query name: end description: Search by end time as a Unix timestamp type: integer format: timestamp - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: action, -created_at' type: string enum: - action - created_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc /v2/api_keys_management: get: summary: List accessible API keys tags: - ApiKey responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/ApiKeyList' parameters: - in: query name: company_id description: Filter by company_id type: integer - in: query name: owner_type description: Filter by owner_type type: string enum: - Any - App - in: query name: status description: Filter by status type: string enum: - requested - active - inactive - in: query name: name description: Search by name type: string post: summary: Create an API key tags: - ApiKey responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created API key schema: $ref: '#/definitions/ApiKey' parameters: - in: body name: api_key description: API Key Payload required: true type: object schema: $ref: '#/definitions/ApiKeyPayload' /v2/api_keys_management/{id}: get: summary: Show API key tags: - ApiKey responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/ApiKey' parameters: - in: path name: id description: API key ID required: true type: integer format: int64 patch: summary: Update an API key tags: - ApiKey responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated API key schema: $ref: '#/definitions/ApiKey' parameters: - in: path name: id description: API key ID required: true type: integer format: int64 - in: body name: api_key description: API Key Payload required: true type: object schema: $ref: '#/definitions/ApiKeyPayload' delete: summary: Delete an API key tags: - ApiKey responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: API key deleted parameters: - in: path name: id description: API key ID required: true type: integer format: int64 /v2/api_keys_management/{id}/activate: post: summary: Approve and Activate an API key tags: - ApiKey responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Activated API key schema: $ref: '#/definitions/ApiKey' parameters: - in: path name: id description: API key ID required: true type: integer format: int64 /v2/api_keys_management/{id}/deactivate: post: summary: Deactivate an API key tags: - ApiKey responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Deactivated API key schema: $ref: '#/definitions/ApiKey' parameters: - in: path name: id description: API key ID required: true type: integer format: int64 /v2/edr_providers: get: summary: Get a list of edr providers tags: - EdrProviders responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List of edr providers schema: $ref: '#/definitions/EdrProviders' parameters: - in: query name: search description: Search by edr provider's name, username or link type: string - in: query name: provider_type description: Filter by provider type type: string enum: - witsml - generic - in: query name: last_connection_failed description: Search by edr provider's last connection try type: boolean - in: query name: per_page description: Number of items to list per page type: integer - in: query name: page description: Number of page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: name,-id' type: string enum: - id - name - link - username - provider_type - created_by - last_connection_time - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc post: summary: Create a edr provider tags: - EdrProviders responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' parameters: - in: body name: name description: Edr Provider name required: true type: string - in: body name: provider_type description: Edr Provider type. Defaults to witsml. required: false type: string enum: - witsml - generic - in: body name: link description: Edr Provider link. Required for witsml providers. required: false type: string - in: body name: username description: Edr Provider username. Required for witsml providers. required: false type: string - in: body name: password description: Edr Provider password. Required for witsml providers. required: false type: string - in: body name: metadata description: Raw Edr Provider metadata. Required for generic providers and may include credentials. type: object /v2/edr_providers/{id}: get: summary: Get an Edr provider tags: - EdrProviders responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Edr provider schema: $ref: '#/definitions/EdrProvider' parameters: - in: path name: id description: Edr Provider ID required: true type: integer format: int64 patch: summary: Update an Edr provider tags: - EdrProviders responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Edr provider schema: $ref: '#/definitions/EdrProvider' parameters: - in: path name: id description: Edr Provider ID required: true type: integer format: int64 delete: summary: Delete an Edr provider tags: - EdrProviders responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Edr provider deleted parameters: - in: path name: id description: Edr Provider ID required: true type: integer format: int64 /v2/edr_providers/{id}/test_connection: post: summary: Get an Edr provider tags: - EdrProviders responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response with task_id to poll from schema: example: data: task_id: 1234-5678-9012 parameters: - in: path name: id description: Edr Provider ID required: true type: integer format: int64 /v2/api_key_audits: get: summary: List ApiKey Audits tags: - Audits responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/ApiKeyAuditList' parameters: - in: query name: action_name description: Filter by action type: string - in: query name: user_email description: Searches by user email type: string - in: query name: status description: Filter by status type: string - in: query name: company_id description: Filter by company type: integer - in: query name: start description: Search by start time as a Unix timestamp type: integer format: timestamp - in: query name: end description: Search by end time as a Unix timestamp type: integer format: timestamp - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: action, -created_at' type: string enum: - action - created_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc /v2/wells/{well_id}/type_wells: get: summary: Get typewells from a primary well tags: - TypeWells responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: List of typewells schema: items: $ref: '#/definitions/Well' parameters: - in: path name: well_id description: Well ID required: true type: integer format: int64 post: summary: Add new typewell well to a primary well tags: - TypeWells responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Type well schema: $ref: '#/definitions/TypeWell' parameters: - in: path name: well_id description: Well ID required: true type: integer format: int64 - in: body name: offset_well_id description: Offset Well ID required: true type: integer format: int64 /v2/wells/{well_id}/type_wells/{id}: delete: summary: Remove typewell well from a primary well tags: - TypeWells responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: TypeWell deleted parameters: - in: path name: well_id description: Well ID required: true type: integer format: int64 - in: path name: id description: TypeWell ID required: true type: integer format: int64 /v2/tool_ordering/orders: get: summary: List Tool Orders tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Tool Ordering is disabled for the current company (code 'feature_disabled') '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List of tool orders for the current company, newest first schema: $ref: '#/definitions/ToolOrderList' parameters: - in: query name: status description: Filter by exact status type: string required: false - in: query name: active description: '''true'' excludes received_on_rig/cancelled/rejected orders; ''false'' returns only those' type: string required: false - in: query name: page description: Page number type: integer required: false - in: query name: per_page description: Items per page type: integer required: false post: summary: Create Tool Order tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Tool Ordering is disabled for the current company (code 'feature_disabled') '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '201': description: Created draft order schema: $ref: '#/definitions/ToolOrderSingle' '400': description: 'Validation error: invalid asset/vendor, missing components, or bad quantity' parameters: - in: body name: body required: true schema: $ref: '#/definitions/ToolOrderPayload' /v2/tool_ordering/orders/{id}: get: summary: Get Tool Order tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Tool Ordering is disabled for the current company (code 'feature_disabled') '404': description: Tool order not found '200': description: Tool order details, including components schema: $ref: '#/definitions/ToolOrderSingle' parameters: - in: path name: id required: true type: integer format: int64 patch: summary: Update Draft Tool Order tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated order schema: $ref: '#/definitions/ToolOrderSingle' '409': description: Order is no longer a draft parameters: - in: path name: id required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/ToolOrderPayload' delete: summary: Delete Draft Tool Order tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Deleted '409': description: Order is no longer a draft parameters: - in: path name: id required: true type: integer format: int64 /v2/tool_ordering/orders/{id}/submit: post: summary: Submit Tool Order tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Order moved to awaiting_acknowledgement; every component submitted schema: $ref: '#/definitions/ToolOrderSingle' '400': description: 'Validation error: inactive vendor, vendor with no eligible notification recipient, an unselectable recipient_user_id, invalid specs, or a tool family over its max quantity' '409': description: Order is not a draft parameters: - in: path name: id required: true type: integer format: int64 - in: body name: body required: false schema: properties: tool_order: type: object properties: recipient_user_ids: type: array items: type: integer format: int64 description: Subset of eligible vendor notification recipients to email; omit/empty to notify all of them /v2/tool_ordering/orders/{id}/acknowledge: post: summary: Acknowledge Tool Order (vendor action) tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Vendor access required (code 'not_authorized') '404': description: Order not found, draft, or not visible to this vendor '200': description: Order acknowledged; idempotent if already acknowledged schema: $ref: '#/definitions/ToolOrderSingle' '409': description: Order is not awaiting acknowledgement parameters: - in: path name: id required: true type: integer format: int64 /v2/tool_ordering/orders/{id}/cancel: post: summary: Cancel Tool Order tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Not authorized (neither vendor access nor internal update access) '404': description: Order not found or not visible '200': description: Order and its cancellable components cancelled; allowed for the vendor (same-customer active membership) or an internal user with update access schema: $ref: '#/definitions/ToolOrderSingle' '400': description: reason is missing, not a string, or too long '409': description: Order has not been submitted, is already terminal, or a component has shipped parameters: - in: path name: id required: true type: integer format: int64 - in: body name: body required: true schema: properties: reason: type: string /v2/tool_ordering/orders/{order_id}/components/{id}/transition: post: summary: Transition Order Component Status (vendor action) tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Vendor access required (code 'not_authorized') '404': description: Order or component not found or not visible to this vendor '200': description: Component transitioned; order status re-derived schema: $ref: '#/definitions/ToolOrderSingle' '400': description: Unsupported target status, or the transition is not legal from the current status '409': description: Order is not acknowledged, or is no longer active parameters: - in: path name: order_id required: true type: integer format: int64 - in: path name: id required: true type: integer format: int64 - in: body name: body required: true schema: properties: to: type: string enum: - in_progress - ready_to_ship - shipped /v2/tool_ordering/orders/{order_id}/components/{id}/final_specs: patch: summary: Update Order Component Final Specs (vendor action) tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Vendor access required (code 'not_authorized') '404': description: Order or component not found or not visible to this vendor '200': description: Component final specs and/or serial number updated schema: $ref: '#/definitions/ToolOrderSingle' '400': description: final_specs is not an object, or the payload is too large '409': description: Order is read only, or the component is not active parameters: - in: path name: order_id required: true type: integer format: int64 - in: path name: id required: true type: integer format: int64 - in: body name: body required: true schema: properties: final_specs: type: object description: Omit to leave untouched; {} clears it serial_number: type: string description: Omit to leave untouched; null clears it /v2/tool_ordering/orders/{order_id}/components/receive: post: summary: Receive Shipped Order Components On Rig (internal action) tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Internal update permission required, or Tool Ordering is disabled '404': description: Order is not internally accessible, or a component does not belong to it '200': description: Components received; order status re-derived once schema: $ref: '#/definitions/ToolOrderSingle' '400': description: component_ids is missing, empty, or contains an invalid ID '409': description: Order is not acknowledged/active, or a component is not shipped parameters: - in: path name: order_id required: true type: integer format: int64 - in: body name: body required: true schema: required: - component_ids properties: component_ids: type: array minItems: 1 items: type: integer format: int64 /v2/tool_ordering/orders/{order_id}/proposals: get: summary: List Component Change Proposals tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Tool Ordering is disabled or a named user is required '404': description: Order not found or not visible to the user '200': description: Proposals visible to the internal or vendor user schema: $ref: '#/definitions/ChangeProposalList' '400': description: Invalid status filter parameters: - in: path name: order_id required: true type: integer format: int64 - in: query name: status required: false type: string enum: - pending - approved - rejected - all default: pending post: summary: Submit Component Change Proposal (vendor action) tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Vendor access required (code 'not_authorized') '404': description: Order or component not found or not visible to this vendor '201': description: Created pending proposal schema: $ref: '#/definitions/ChangeProposalSingle' '400': description: Invalid fields/specifications, no actual change, payload too large, or reason is invalid '409': description: Order/component is inactive, baseline is stale, or a pending proposal already exists parameters: - in: path name: order_id required: true type: integer format: int64 - in: body name: body required: true schema: required: - component_id - proposed_changes - reason properties: component_id: type: integer format: int64 proposed_changes: type: object reason: type: string /v2/tool_ordering/orders/{order_id}/proposals/{id}/approve: post: summary: Approve Component Change Proposal tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Internal update permission required '404': description: Order or proposal not found in the authorized scope '200': description: Approved proposal and resulting order status schema: $ref: '#/definitions/ChangeProposalDecisionSingle' '400': description: Invalid decision comment or resulting specifications '409': description: Stale proposal, inactive order/component, or proposal was already rejected parameters: - in: path name: order_id required: true type: integer format: int64 - in: path name: id required: true type: integer format: int64 - in: body name: body required: false schema: properties: decision_comment: type: string description: Optional, maximum 2,000 characters /v2/tool_ordering/orders/{order_id}/proposals/{id}/reject: post: summary: Reject Component Change Proposal tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Internal update permission required '404': description: Order or proposal not found in the authorized scope '200': description: Rejected proposal and resulting order status schema: $ref: '#/definitions/ChangeProposalDecisionSingle' '400': description: Decision comment is missing or invalid '409': description: Inactive order/component, or proposal was already approved parameters: - in: path name: order_id required: true type: integer format: int64 - in: path name: id required: true type: integer format: int64 - in: body name: body required: true schema: required: - decision_comment properties: decision_comment: type: string description: Required, maximum 2,000 characters /v2/tool_ordering/orders/{order_id}/proposals/approve_all: post: summary: Approve Selected Component Change Proposals Atomically tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Internal update permission required '404': description: Order or any requested proposal not found in the authorized scope '200': description: Requested proposals and resulting order status schema: $ref: '#/definitions/ChangeProposalDecisionList' '400': description: proposal_ids or decision comment is invalid '409': description: Any proposal is stale, inactive, or was already rejected; no proposals are changed parameters: - in: path name: order_id required: true type: integer format: int64 - in: body name: body required: true schema: required: - proposal_ids properties: proposal_ids: type: array items: type: integer format: int64 decision_comment: type: string description: Optional, maximum 2,000 characters /v2/tool_ordering/orders/{order_id}/proposals/reject_all: post: summary: Reject Selected Component Change Proposals Atomically tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Internal update permission required '404': description: Order or any requested proposal not found in the authorized scope '200': description: Requested proposals and resulting order status schema: $ref: '#/definitions/ChangeProposalDecisionList' '400': description: proposal_ids or decision comment is invalid '409': description: Any proposal is inactive or was already approved; no proposals are changed parameters: - in: path name: order_id required: true type: integer format: int64 - in: body name: body required: true schema: required: - proposal_ids - decision_comment properties: proposal_ids: type: array items: type: integer format: int64 decision_comment: type: string description: Required, maximum 2,000 characters /v2/tool_ordering/orders/{order_id}/attachments: get: summary: List Order Attachments tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Tool Ordering is disabled or a named user is required '404': description: Order not found or not visible to the user '200': description: Attachments visible to the internal or vendor user schema: $ref: '#/definitions/OrderAttachmentList' parameters: - in: path name: order_id required: true type: integer format: int64 - in: query name: component_id required: false type: integer format: int64 description: Only attachments of this component post: summary: Register Uploaded Order Attachment tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Vendor action rights or internal update permission required '404': description: Order or component not found in the authorized scope '201': description: Attachment registered schema: $ref: '#/definitions/OrderAttachmentSingle' '400': description: s3_key is foreign/unuploaded, the file is too large, or file_name is invalid '409': description: Order is inactive or the s3_key is already registered parameters: - in: path name: order_id required: true type: integer format: int64 - in: body name: body required: true schema: required: - s3_key - file_name properties: s3_key: type: string description: Value returned by the signed_url endpoint file_name: type: string component_id: type: integer format: int64 description: Attach to one component of the order (submitted orders only, draft components are replaced wholesale on edit); omit for order-level /v2/tool_ordering/orders/{order_id}/attachments/signed_url: post: summary: Presign Order Attachment Upload tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Vendor action rights or internal update permission required '404': description: Order not found in the authorized scope '200': description: Presigned PUT URL; upload the file body there, then register it schema: $ref: '#/definitions/OrderAttachmentPresign' '400': description: file_name is missing/unsupported, or content_type does not match the extension '409': description: Order is inactive parameters: - in: path name: order_id required: true type: integer format: int64 - in: body name: body required: true schema: required: - file_name - content_type properties: file_name: type: string description: 'Allowed extensions: .pdf, .doc, .docx, .xls, .xlsx, .ppt, .pptx, .csv, .txt, .png, .jpg, .jpeg, .heic' content_type: type: string description: Must match the file_name extension /v2/tool_ordering/orders/{order_id}/attachments/{id}: delete: summary: Delete Order Attachment tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Only the uploader or an internal user with update permission can delete '404': description: Order or attachment not found in the authorized scope '200': description: Attachment removed from the order and the file store schema: $ref: '#/definitions/OrderAttachmentDeleted' '409': description: Order is inactive parameters: - in: path name: order_id required: true type: integer format: int64 - in: path name: id required: true type: integer format: int64 /v2/tool_ordering/specifications: get: summary: Get Tool Specification Definition tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Tool Ordering is disabled for the current company (code 'feature_disabled') '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Specification field definitions for the given tool family schema: $ref: '#/definitions/ToolOrderingSpecification' '400': description: tool_family query param is required parameters: - in: query name: tool_family required: true type: string description: Tool family key, e.g. mud_motor; unknown families fall back to the generic definition /v2/tool_ordering/vendors: get: summary: List Vendors tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Tool Ordering is disabled for the current company (code 'feature_disabled') '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Vendors for the current company, with contacts inlined; active vendors only unless include_inactive=true schema: $ref: '#/definitions/VendorList' parameters: - in: query name: page description: Page number type: integer required: false - in: query name: per_page description: Items per page type: integer required: false - in: query name: include_inactive type: boolean required: false description: 'Also return deactivated vendors (active: false); default lists active vendors only' post: summary: Create Vendor tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Not authorized to create vendors, member_user_ids given without manage permission on vendors, or Tool Ordering is disabled for the current company (code 'feature_disabled') '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '201': description: Created vendor schema: $ref: '#/definitions/VendorSingle' '400': description: 'Validation error: blank or duplicate name, or member_user_ids outside the company' parameters: - in: body name: body required: true schema: $ref: '#/definitions/VendorPayload' /v2/tool_ordering/vendors/{id}: patch: summary: Update Vendor tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Not authorized to update this vendor, member_user_ids given without manage permission on it, or Tool Ordering is disabled for the current company (code 'feature_disabled') '404': description: Vendor not found, or belongs to another company '200': description: Updated vendor schema: $ref: '#/definitions/VendorSingle' '400': description: 'Validation error: blank or duplicate name, or member_user_ids outside the company' parameters: - in: path name: id required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/VendorPayload' /v2/tool_ordering/vendors/{vendor_id}/memberships: get: summary: List Vendor Memberships tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Not authorized to read this vendor, or Tool Ordering is disabled for the current company (code 'feature_disabled') '404': description: Vendor not found, or belongs to another company '200': description: Memberships for the vendor, with member user name/email inlined schema: $ref: '#/definitions/VendorMembershipList' parameters: - in: path name: vendor_id required: true type: integer format: int64 post: summary: Add Vendor Membership tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Not authorized to manage this vendor, or Tool Ordering is disabled for the current company (code 'feature_disabled') '404': description: Vendor not found, or belongs to another company '201': description: Created membership; the vendor_tool_order permission group is appended to the user's groups (additively, without touching other groups) schema: $ref: '#/definitions/VendorMembershipSingle' '200': description: 'The user already had a membership: returned as-is, re-activated (and the group restored) if it had been deactivated' schema: $ref: '#/definitions/VendorMembershipSingle' '400': description: user_id is missing or belongs to another company (code 'validation_failed') parameters: - in: path name: vendor_id required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/VendorMembershipCreatePayload' /v2/tool_ordering/vendors/{vendor_id}/memberships/{id}: patch: summary: Update Vendor Membership tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Not authorized to manage this vendor, or Tool Ordering is disabled for the current company (code 'feature_disabled') '404': description: Vendor or membership not found '200': description: 'Updated membership; active: false revokes access immediately (deactivate, not delete)' schema: $ref: '#/definitions/VendorMembershipSingle' parameters: - in: path name: vendor_id required: true type: integer format: int64 - in: path name: id required: true type: integer format: int64 - in: body name: body required: true schema: $ref: '#/definitions/VendorMembershipUpdatePayload' /v2/tool_ordering/vendor_contacts: post: summary: Add Vendor Contact tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Not authorized on the resolved vendor, or Tool Ordering is disabled for the current company (code 'feature_disabled') '404': description: vendor_id not found, or belongs to another company '201': description: Created contact; vendor_name may have created a new vendor schema: $ref: '#/definitions/VendorContactCreated' '400': description: 'Validation error: missing vendor_id/vendor_name, invalid email, or duplicate email on the vendor' parameters: - in: body name: body required: true schema: $ref: '#/definitions/VendorContactPayload' /v2/tool_ordering/vendor_contacts/{id}: delete: summary: Remove Vendor Contact tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Not authorized on the contact's vendor, or Tool Ordering is disabled for the current company (code 'feature_disabled') '404': description: Contact not found, or its vendor belongs to another company '200': description: Deleted schema: $ref: '#/definitions/DeletedStatus' parameters: - in: path name: id required: true type: integer format: int64 /v2/tool_ordering/vendor_directory: get: summary: List Vendor Directory tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Not authorized to read vendors, or Tool Ordering is disabled for the current company (code 'feature_disabled') '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Distinct-by-email people across the company vendors schema: $ref: '#/definitions/VendorDirectoryList' /v2/tool_ordering/distribution_contacts: get: summary: List Company Distribution Contacts tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Internal tool-order update permission required, or Tool Ordering is disabled '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Company-level CC recipients for tool order emails, sorted by name schema: $ref: '#/definitions/DistributionContactList' post: summary: Add Company Distribution Contact tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Internal tool-order update permission required, or Tool Ordering is disabled '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '201': description: Contact added schema: $ref: '#/definitions/DistributionContactSingle' '400': description: Name or email is missing/invalid, email is a duplicate, or the email domain has no users in the company parameters: - in: body name: body required: true schema: properties: distribution_contact: type: object required: - name - email properties: name: type: string email: type: string description: Domain must match an existing user of the company; shared mailboxes on that domain are allowed /v2/tool_ordering/distribution_contacts/{id}: delete: summary: Remove Company Distribution Contact tags: - Tool Ordering responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Internal tool-order update permission required, or Tool Ordering is disabled '404': description: Contact not found in the current company '200': description: Contact removed schema: properties: data: type: object properties: id: type: integer format: int64 status: type: string enum: - deleted parameters: - in: path name: id required: true type: integer format: int64 /v2/well_drillout_unit_runs: get: summary: List well drillout unit runs tags: - WellDrilloutUnitRuns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List well drillout unit runs schema: $ref: '#/definitions/WellDrilloutUnitRunList' parameters: - in: query name: company_id description: Filter by company ID type: integer - in: query name: well_id description: Filter by well ID type: integer - in: query name: drillout_unit_id description: Filter by drillout unit ID type: integer - in: query name: fields description: Respond with only the given list of fields, like well_drillout_unit_run.well_id items: type: string - in: query name: per_page description: Number of well drillout unit runs per page type: integer - in: query name: page description: Page number type: integer /v2/well_drillout_unit_runs/{id}: get: summary: Get a single well drillout unit run tags: - WellDrilloutUnitRuns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Get well drillout unit run schema: $ref: '#/definitions/WellDrilloutUnitRunResponse' parameters: - in: path name: id description: Well Drillout Unit Run ID required: true type: integer - in: query name: fields description: Respond with only the given list of fields, like well_drillout_unit_run.well_id items: type: string /v2/pad_frac_fleets: get: summary: List Pad/Frac Fleet Relations tags: - PadFracFleets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List of Pad/Frac Fleet Relations schema: items: $ref: '#/definitions/EdrProviders' parameters: - in: query name: frac_fleet_id description: Filter by frac_fleet_id type: integer format: int64 - in: query name: pad_id description: Filter by pad_id type: integer format: int64 - in: query name: order description: Order pad frac fleets by 'asc' or 'desc' type: string - in: query name: sort description: Available sort values - created_at, last_current_at type: string - in: query name: page description: Number of page type: integer - in: query name: per_page description: Number of items to list per page type: integer post: summary: Create Pad/Frac Fleet Relation tags: - PadFracFleets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Pad/Frac Fleet Relation schema: $ref: '#/definitions/PadFracFleet' parameters: - in: body name: pad_frac_fleet description: Pad/Frac Fleet Payload required: true type: object schema: $ref: '#/definitions/CreatePadFracFleetPayload' /v2/pad_frac_fleets/{id}: patch: summary: Patch Pad/Frac Fleet Relation tags: - PadFracFleets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Pad/Frac Fleet Relation schema: $ref: '#/definitions/PadFracFleet' parameters: - in: path name: id description: Pad/Frac Fleet ID required: true type: integer format: int64 - in: body name: pad_frac_fleet description: Pad/Frac Fleet Payload required: true type: object schema: $ref: '#/definitions/UpdatePadFracFleetPayload' delete: summary: Delete Pad/Frac Fleet Relation tags: - PadFracFleets responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Pad/Frac Fleet Relation deleted parameters: - in: path name: id description: Pad/Frac Fleet ID required: true type: integer format: int64 /v2/frac_fleets/{frac_fleet_id}/frac_fleet_contracts: get: summary: List Company Goals if no filters applied tags: - FracFleetContracts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List of Frac Fleet Contracts schema: type: array items: $ref: '#/definitions/FracFleetContract' parameters: - in: path name: frac_fleet_id type: integer format: int64 description: Frac Fleet ID - in: query name: per_page description: Number of items to list per page type: integer - in: query name: page description: Number of page type: integer post: summary: Create Frac Fleet Contract tags: - FracFleetContracts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Frac Fleet Contract schema: $ref: '#/definitions/FracFleetContract' parameters: - in: path name: frac_fleet_id type: integer format: int64 description: Frac Fleet ID - in: body name: goal description: Frac Fleet Contract Payload required: true type: object schema: $ref: '#/definitions/FracFleetContractCreatePayload' /v2/frac_fleets/{frac_fleet_id}/frac_fleet_contracts/{id}: get: summary: List Company Goals if no filters applied tags: - FracFleetContracts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Frac Fleet Contract schema: $ref: '#/definitions/FracFleetContract' parameters: - in: path name: frac_fleet_id type: integer format: int64 description: Frac Fleet ID - in: path name: id type: integer format: int64 description: Frac Fleet Contract ID patch: summary: Update Frac Fleet Contract tags: - FracFleetContracts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Frac Fleet Contract schema: $ref: '#/definitions/FracFleetContract' parameters: - in: path name: frac_fleet_id type: integer format: int64 description: Frac Fleet ID - in: path name: id type: integer format: int64 description: Frac Fleet Contract ID - in: body name: goal description: Frac Fleet Contract Payload required: true type: object schema: $ref: '#/definitions/FracFleetContractUpdatePayload' delete: summary: Delete Frac Fleet Contract tags: - FracFleetContracts responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Deleted Frac Fleet Contract schema: example: status: deleted parameters: - in: path name: frac_fleet_id type: integer format: int64 description: Frac Fleet ID - in: path name: id type: integer format: int64 description: Frac Fleet Contract ID /v2/intervention_units: get: summary: Get a list of Intervention Units tags: - InterventionUnits responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' parameters: - in: query name: company description: Search by Company ID type: integer - in: query name: program description: Search by Program ID type: integer - in: query name: search description: Search by intervention name type: string - in: query name: intervention_type description: Filter by intervention type type: string - in: query name: per_page description: Number of intervention units per page type: integer - in: query name: page description: Number of page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: company,name' type: string enum: - name - company - program - intervention_type - created_at default: name - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc post: summary: Create an Intervention Unit tags: - InterventionUnits responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Intervention Unit schema: $ref: '#/definitions/InterventionUnit' parameters: - in: body name: intervention_unit description: Intervention Unit Payload required: true type: object schema: $ref: '#/definitions/InterventionUnitPayload' /v2/intervention_units/{id}: patch: summary: Update Intervention Unit tags: - InterventionUnits responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Intervention Unit schema: $ref: '#/definitions/InterventionUnit' parameters: - in: path name: id type: integer format: int64 description: Intervention ID - in: body name: intervention_unit description: Intervention Payload required: true type: object schema: $ref: '#/definitions/InterventionUnitPayload' delete: summary: Delete Intervention Unit tags: - InterventionUnits responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Deleted Intervention Unit schema: example: status: deleted parameters: - in: path name: id type: integer format: int64 description: Intervention ID /v2/intervention_unit_events: get: summary: Get a list of Intervention Units Events by well tags: - InterventionUnitEvents responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' parameters: - in: query name: operation description: Filter by operation type: string - in: query name: well_id description: Filter by well_id type: integer - in: query name: per_page description: Number of intervention unit events per page type: integer - in: query name: page description: Number of page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: operation,created_at' type: string enum: - operation - created_at - well - intervention_unit - last_active_at default: -created_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc /v2/wells/{well_id}/intervention_unit_events: post: summary: Create an Intervention Unit Event tags: - InterventionUnitEvents responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Intervention Unit Event schema: $ref: '#/definitions/InterventionUnitEvent' parameters: - in: body name: intervention_unit_event description: Intervention Unit Event Payload required: true type: object schema: $ref: '#/definitions/CreateInterventionUnitEventPayload' /v2/intervention_unit_events/{id}: patch: summary: Update Intervention Unit Event tags: - InterventionUnitEvents responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Updated Intervention Unit Event schema: $ref: '#/definitions/InterventionUnit' parameters: - in: path name: id type: integer format: int64 description: Intervention Unit Event ID - in: body name: intervention_unit_event description: Intervention Unit Event Payload required: true type: object schema: $ref: '#/definitions/UpdateInterventionUnitEventPayload' delete: summary: Delete Intervention Unit Event tags: - InterventionUnitEvents responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Deleted Intervention Unit Event schema: example: status: deleted parameters: - in: path name: id type: integer format: int64 description: Intervention Unit Event ID /v2/data_export_app: get: summary: Get enriched well export data tags: - Data Export App responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response schema: $ref: '#/definitions/DataExportWellList' parameters: - in: query name: page type: integer description: Page number for pagination - in: query name: per_page type: integer description: Number of items per page - in: query name: visibility type: string description: Filter by Well visibility - in: query name: company_ids type: array collectionFormat: multi items: type: integer description: Filter by company IDs - in: query name: well_ids type: array collectionFormat: multi items: type: integer description: Filter by Well IDs - in: query name: asset_ids type: array collectionFormat: multi items: type: integer description: Filter by Asset IDs - in: query name: keys type: array collectionFormat: multi items: type: string description: Optional list of metric keys to return under `metrics` - in: query name: drillstring_keys type: array collectionFormat: multi items: type: string description: Optional list of drillstrings keys to return under `drillstrings` - in: query name: data_type type: string enum: - asset - bha - well_section - rig - completion description: Optional filter by data.type - in: query name: sort_field type: string description: Field to sort by (e.g. `county`, `rig_type`, `bit_depth`, etc.) - in: query name: sort_direction type: string enum: - asc - desc description: Sort direction - in: query name: filters[].field type: string description: Field name to filter by (e.g. `county`, `bit_depth`) - in: query name: filters[].condition type: string enum: - is_equal - is_not_equal - text_contains - text_does_not_contain - text_is_exactly description: Condition for filtering - in: query name: filters[].value type: string description: Value to compare against /v2/data_export_app/list: post: summary: Get enriched well export data tags: - Data Export App responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response schema: $ref: '#/definitions/DataExportWellList' parameters: - in: query name: page type: integer description: Page number for pagination - in: query name: per_page type: integer description: Number of items per page - in: query name: visibility type: string description: Filter by Well visibility - in: query name: company_ids type: array collectionFormat: multi items: type: integer description: Filter by company IDs - in: query name: well_ids type: array collectionFormat: multi items: type: integer description: Filter by Well IDs - in: query name: asset_ids type: array collectionFormat: multi items: type: integer description: Filter by Asset IDs - in: query name: keys type: array collectionFormat: multi items: type: string description: Optional list of metric keys to return under `metrics` - in: query name: drillstring_keys type: array collectionFormat: multi items: type: string description: Optional list of drillstrings keys to return under `drillstrings` - in: query name: data_type type: string enum: - asset - bha - well_section - rig - completion description: Optional filter by data.type - in: query name: sort_field type: string description: Field to sort by (e.g. `county`, `rig_type`, `bit_depth`, etc.) - in: query name: sort_direction type: string enum: - asc - desc description: Sort direction - in: query name: filters[].field type: string description: Field name to filter by (e.g. `county`, `bit_depth`) - in: query name: filters[].condition type: string enum: - is_equal - is_not_equal - text_contains - text_does_not_contain - text_is_exactly description: Condition for filtering - in: query name: filters[].value type: string description: Value to compare against /v2/data_export_app/column_fields: get: summary: Get column fields for a column in export index endpoint tags: - Data Export App parameters: - in: query name: page type: integer description: Page number for pagination - in: query name: per_page type: integer description: Number of items per page - in: query name: company_ids type: array collectionFormat: multi items: type: integer description: Filter by company IDs - in: query name: well_ids type: array collectionFormat: multi items: type: integer description: Filter by Well IDs - in: query name: asset_ids type: array collectionFormat: multi items: type: integer description: Filter by Asset IDs - in: query name: filters[].field type: string description: Field name to filter by (e.g. `county`, `bit_depth`) - in: query name: filters[].condition type: string enum: - is_equal - is_not_equal - text_contains - text_does_not_contain - text_is_exactly description: Condition for filtering - in: query name: filters[].value type: string description: Value to compare against - in: query name: lookup_field type: string description: A lookup field to lookup column fields in the app. Currently supported three main groups well, bha, metrics. Main groups are names before first dot. Lookup fields example F.e. well.name, bha.pdm.maker, metrics.hour.bit_depth.formation_id responses: '200': description: Successful response schema: $ref: '#/definitions/DataExportColumnFields' /v2/data_export_app/column_fields_list: post: summary: Get column fields for a column in export index endpoint tags: - Data Export App parameters: - in: query name: page type: integer description: Page number for pagination - in: query name: per_page type: integer description: Number of items per page - in: query name: company_ids type: array collectionFormat: multi items: type: integer description: Filter by company IDs - in: query name: well_ids type: array collectionFormat: multi items: type: integer description: Filter by Well IDs - in: query name: asset_ids type: array collectionFormat: multi items: type: integer description: Filter by Asset IDs - in: query name: filters[].field type: string description: Field name to filter by (e.g. `county`, `bit_depth`) - in: query name: filters[].condition type: string enum: - is_equal - is_not_equal - text_contains - text_does_not_contain - text_is_exactly description: Condition for filtering - in: query name: filters[].value type: string description: Value to compare against - in: query name: lookup_field type: string description: A lookup field to lookup column fields in the app. Currently supported three main groups well, bha, metrics. Main groups are names before first dot. Lookup fields example F.e. well.name, bha.pdm.maker, metrics.hour.bit_depth.formation_id responses: '200': description: Successful response schema: $ref: '#/definitions/DataExportColumnFields' /v2/data_export_app/flat: post: summary: Get flat JSON:API-like response for global sorting tags: - Data Export App responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Forbidden - user has no access to requested wells/companies '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response with flat items and metadata schema: $ref: '#/definitions/DataExportFlatResponse' description: "Returns a flat array of items (BHA, well_section, well, mud) with global sorting support.\n\n**Key differences\ \ from /list endpoint:**\n- **Flat structure**: Items in `data` array, wells deduplicated in `included`\n- **Global\ \ sorting**: Array order IS the sort order - no need for sorted_metric_order indices\n- **Clear counts**: `total_count`\ \ (static) vs `filtered_count` (dynamic with filters)\n- **Optimized for large datasets**: Batched MongoDB queries\ \ for 7000+ wells\n\n**Response structure:**\n```json\n{\n \"data\": [{ \"id\": \"bha_123_456_2\", \"type\": \"bha\"\ , \"attributes\": {...}, \"relationships\": {...} }],\n \"included\": [{ \"id\": 123, \"type\": \"well\", \"attributes\"\ : {...} }],\n \"meta\": { \"total_count\": 150, \"filtered_count\": 45, \"has_more\": true, \"page\": 1, \"per_page\"\ : 80 }\n}\n```\n" parameters: - in: query name: page type: integer description: 'Page number for pagination (default: 1)' - in: query name: per_page type: integer description: 'Items per page (default: 80)' - in: query name: company_ids type: array collectionFormat: multi items: type: integer description: Filter by company IDs - in: query name: well_ids type: array collectionFormat: multi items: type: integer description: Filter by Well IDs - in: query name: asset_ids type: array collectionFormat: multi items: type: integer description: Filter by Asset IDs - in: query name: data_type type: string enum: - asset - bha - well_section - rig - mud description: Data type to return (determines item grouping) - in: query name: keys type: array collectionFormat: multi items: type: string description: Metric keys to include in attributes (filter_keys) - in: query name: sort_field type: string description: Field to sort by globally (e.g., bit_depth, start_depth, name) - in: query name: sort_direction type: string enum: - asc - desc description: 'Sort direction (default: asc)' - in: query name: filters[].field type: string description: Field name to filter by - in: query name: filters[].condition type: string enum: - is_equal - is_not_equal - greater_than - less_than - text_contains - text_does_not_contain description: Filter condition - in: query name: filters[].value type: string description: Value to compare against /v2/data_export_app/activity_code_mappings: get: summary: Get activity code type mappings for a company tags: - Data Export App responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Forbidden - user has no access to wells in this company '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response with mappings(or empty array if none exist) schema: $ref: '#/definitions/ActivityCodeMappingsList' '400': description: Bad request - company_id is required parameters: - in: query name: company_id type: integer required: true description: Company ID to fetch activity code mappings for /v2/data_export_app/metrics_definitions: get: summary: Get dynamic metric definitions for a company tags: - Data Export App responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Forbidden - user has no access to wells in this company '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Successful response with definitions(or empty array if none exist) schema: $ref: '#/definitions/MetricsDefinitionsList' '400': description: Bad request - company_id is required '503': description: Service unavailable - upstream MongoDB error description: "Returns per-company dynamic metric metadata from the `corva#metrics.definitions`\nMongoDB collection.\ \ The FE uses this to render custom metrics (name, category,\nunit, ILT icon/color) without hardcoding them per company.\n\ \nNotes:\n- One entry per segment; only the **latest** document per segment is returned.\n- Backend-internal fields\ \ (`rules`, `restrict`, `description`) are stripped.\n- `usage_rules` is included as-is when present; FE matches wells\ \ by program name.\n- Metric **values** flow through the existing `/v2/data_export_app/flat` endpoint —\n no separate\ \ fetch is required.\n" parameters: - in: query name: company_id type: integer required: true description: Company ID to fetch metric definitions for /v2/country_list: get: summary: Get list of available countries tags: - Countries responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': type: object description: Successful response schema: $ref: '#/definitions/CountryList' /v2/integration/revolt_chat_sessions: post: summary: Create or fetch Revolt Chat session tags: - RevoltChat responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Returns session token and channel info schema: type: object properties: revolt_session_token: type: string revolt_user_id: type: string revolt_company_server_id: type: string revolt_user_joined_server_id: type: string revolt_channel_id: type: string example: revolt_session_token: rvlt_session_123abc456xyz revolt_user_id: 01K6ND3NGTDYMSTX48XQWQ89EW revolt_company_server_id: 01K81Z06QFPKDAJWX1RDV4RM5P revolt_user_joined_server_id: 01K81Z06QFPKDAJWX1RDV4RM5P revolt_channel_id: 01K81Z06QF2WW6NK6Q39JRV4K8 '502': description: Revolt API error schema: type: object properties: code: type: integer message: type: string example: code: 502 message: 'Failed to create channel: 500 - error' parameters: - in: query name: well_id type: integer description: Well ID - in: query name: pad_id type: integer description: Pad ID /v2/intervention_unit_reruns: get: summary: Get a list of Intervention Unit Reruns tags: - InterventionUnitReruns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: List of Intervention Unit Reruns schema: properties: data: type: array items: $ref: '#/definitions/InterventionUnitRerun' parameters: - in: query name: intervention_unit_id description: Filter by intervention_unit_id type: integer - in: query name: intervention_unit_event_id description: Filter by intervention_unit_event_id type: integer - in: query name: app_stream_id description: Filter by app_stream_id type: integer - in: query name: per_page description: Number of intervention unit reruns per page type: integer - in: query name: page description: Number of page type: integer - in: query name: sort description: 'One or more fields to sort by. Prefix with a - for descending order. Ex: created_at,intervention_unit' type: string enum: - created_at - intervention_unit - app_stream default: -created_at - in: query name: order description: A sorting direction type: string enum: - asc - desc default: asc post: summary: Create an Intervention Unit Rerun tags: - InterventionUnitReruns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Created Intervention Unit Rerun schema: $ref: '#/definitions/InterventionUnitRerun' '422': description: Unprocessable Entity schema: properties: message: type: string example: message: 'Validation failed: Name can''t be blank' parameters: - in: body name: body description: Intervention Unit Rerun Payload required: true type: object schema: $ref: '#/definitions/CreateInterventionUnitRerunPayload' /v2/intervention_unit_reruns/{id}: get: summary: Get Intervention Unit Rerun by ID tags: - InterventionUnitReruns responses: '401': description: Authentication error schema: $ref: '#/definitions/AuthenticationError' '403': description: Authorization error schema: $ref: '#/definitions/AuthorizationError' '404': description: Not found error schema: $ref: '#/definitions/NotFoundError' '200': description: Intervention Unit Rerun schema: $ref: '#/definitions/InterventionUnitRerun' parameters: - in: path name: id type: integer format: int64 description: Intervention Unit Rerun ID definitions: AuthenticationError: required: - code - message properties: code: type: integer format: int32 message: type: string example: code: 401 message: Missing authentication. Please try again. AuthorizationError: required: - code - message properties: code: type: integer format: int32 message: type: string example: code: 403 message: Access denied NotFoundError: required: - code - message properties: code: type: integer format: int32 message: type: string example: code: 404 message: Not found FeatureStatus: properties: active: type: boolean total: type: integer used: type: integer example: active: 'true' total: 10 used: 2 PermissionStatus: properties: active: type: boolean example: active: 'true' ActivityPost: required: - id properties: id: type: integer format: int64 context: type: object properties: post: type: object properties: body: type: string type: type: string segment: type: array items: type: string created_at: type: string format: date-time liked: type: boolean likes_count: type: integer format: int32 rig: type: object properties: id: type: integer format: int64 name: type: string active_well: type: object properties: id: type: integer format: int64 name: type: string mentioned_users: type: array items: $ref: '#/definitions/V1UserMinimal' user: type: object $ref: '#/definitions/V1UserMinimal' likes: type: array items: $ref: '#/definitions/Like' ActivityWell: properties: id: type: integer format: int64 name: type: string parent_asset: properties: id: type: integer format: int64 name: type: string ActivityRig: properties: id: type: integer format: int64 name: type: string active_well: properties: id: type: integer format: int64 name: type: string V2Activity: required: - id - body properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 type: type: string context: type: object created_at: type: string format: date-time liked: type: boolean likes_count: type: integer rig: type: object well: type: object relationships: type: object properties: user: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string well: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string rig: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string mentioned_users: type: array items: properties: data: type: object properties: id: type: integer format: int64 type: type: string comments: type: array items: properties: data: type: object properties: id: type: integer format: int64 type: type: string likes: type: array items: properties: data: type: object properties: id: type: integer format: int64 type: type: string ActivitiesList: properties: data: type: array items: $ref: '#/definitions/V2Activity' included: type: array items: properties: oneOf: type: object properties: comment: $ref: '#/definitions/Comment' like: $ref: '#/definitions/Like' user: $ref: '#/definitions/UserMinimal' well: $ref: '#/definitions/ActivityWell' rig: $ref: '#/definitions/ActivityRig' ActivitySingle: properties: data: type: object $ref: '#/definitions/V2Activity' included: type: array items: properties: oneOf: type: object properties: comment: $ref: '#/definitions/Comment' like: $ref: '#/definitions/Like' user: $ref: '#/definitions/UserMinimal' well: $ref: '#/definitions/ActivityWell' rig: $ref: '#/definitions/ActivityRig' ActivityPayload: properties: activity: type: object properties: asset_id: type: integer app_id: type: integer context: type: object segment: type: string example: activity: asset_id: 123445 context: post: body: post body segment: drilling app_id: 11234 Comment: required: - id properties: id: type: integer format: int64 body: type: string attachment: type: object properties: file_name: type: string s3_link: type: string attachments: type: array items: properties: file_name: type: string s3_link: type: string created_at: type: string format: date-time mentioned_users: type: array items: $ref: '#/definitions/V1UserMinimal' likes_count: type: integer user: type: object $ref: '#/definitions/V1UserMinimal' likes: type: array items: $ref: '#/definitions/Like' CommentPayload: properties: comment: type: object properties: body: type: string attachment: type: object properties: file_name: type: string s3_link: type: string attachments: type: array items: properties: file_name: type: string s3_link: type: string example: comment: body: Hey @[user:57689|Derek] attachments: - file_name: report.pdf s3_link: some_s3_link CommentV2: properties: id: type: string type: type: string attributes: type: object properties: id: type: integer format: int64 body: type: string created_at: type: string format: date-time updated_at: type: string format: date-time feed_activity_id: type: integer format: int64 likes_count: type: integer attachment: type: object properties: file_name: type: string s3_link: type: string signed_url: type: string attachments: type: array items: properties: file_name: type: string s3_link: type: string signed_url: type: string relationships: type: object properties: user: type: object properties: data: type: object properties: id: type: string type: type: string likes: type: object properties: data: type: array items: properties: id: type: string type: type: string Like: required: - id properties: id: type: integer format: int64 created_at: type: string format: date-time user: type: object $ref: '#/definitions/V1UserMinimal' AlertDefinition: required: - id properties: id: type: integer format: int64 active: type: boolean version: type: integer format: int64 name: type: string identifier: type: string description: type: string level: type: string filter_logic: type: string description: 'Filter logic: AND, OR, or INTERSECT. INTERSECT finds rows matching all filter conditions before applying sample functions.' check_type: type: string period: type: integer format: int64 interval: type: integer format: int64 recurrence: type: string enum: - continuous - periodic - episodic - once - once-per-asset description: episodic notifies once per episode, then on renotification_interval, until rearm_after_checks non-matching checks re-arm it; time checks only rearm_after_checks: type: integer description: Consecutive non-matching evaluations that re-arm an episodic definition; null means one type: type: integer format: int64 requires_validation: type: boolean dashboard_id: type: integer format: int64 workflow_id: type: integer format: int64 template_id: type: integer format: int64 template_type: type: string description: 'Template type: standard, preset, or null' topic: type: string description: Topic for categorizing alert definitions (lowercase alphanumeric with hyphens and underscores only) segment: type: array items: type: string enum: - drilling - completion - intervention created_at: type: string format: date-time updated_at: type: string format: date-time user: type: object $ref: '#/definitions/V1UserMinimal' subscription: type: object properties: assets: type: array items: type: object alert_notification_types: type: array items: type: object ContextResponse: properties: response: type: object example: context: time_zone: America/Chicago language: en unit_system: yp: hsf oil: bbl area: ft2 mass: lb force: klbf speed: ft/h length: ft system: imperial torque: ft-klbf volume: gal density: ppg pressure: psi shortLength: in temperature: F massPerLength: lb-ft volumeFlowRate: gal/min provider: provider-name type: Asset::Well name: My Well last_active_at: '2000-01-01T00:00:00.000Z' status: active area: Permian lon_lat: latitude: 0.0 longitude: 0.0 well_end: 0 total_cost: 0 total_time: 0 well_start: 0 total_depth: 0 timezone: America/Chicago top_hole: {} bottom_hole: {} last_mongo_refresh: '2000-01-01T00:00:00.000Z' spud_at: null first_active_at: null witsml_data_frequency: null TriggerResponse: properties: status: type: string alerts: type: array items: type: object example: status: OK alerts: - id: 1 alert_definition_id: 1 asset_id: 1 data: start: '2010-01-01T00:00:00.000Z' finish: '2010-01-02T00:00:00.00Z' anything: other data can go here created_at: '2010-01-01T00:00:00.000Z' updated_at: '2010-01-01T00:00:00.000Z' alert_at: '2010-01-01T00:00:00.000Z' decision_path: Custom decision path status: open occurrences: 1 last_alert_at: '2010-01-01T00:00:00.000Z' closed_at: null company_id: 1 validated: false validated_at: null validated_by_id: null comments_amount: 0 likes_count: 0 report: null CheckResponse: properties: matched: type: boolean data: type: object example: matched: 'true' data: start: '2010-01-01T00:00:00.000Z' finish: '2010-01-02T00:00:00.00Z' threshold: other data can go here '%filter[:id]%-%{filter[:sample_function]}%-dataset': other data can go here '%filter[:id]%-%{filter[:sample_function]}%-match': other data can go here '%filter[:id]%-%{filter[:sample_function]}%-value': other data can go here AlertDefinitionV2: properties: id: type: string type: type: string attributes: type: object required: - id - name properties: id: type: integer format: int64 name: type: string identifier: type: string description: type: string level: type: string enum: - info - warning - critical active: type: boolean type: type: string enum: - personal - company template_type: type: string enum: - standard - preset check_type: type: string enum: - time - event filter_logic: type: string period: type: integer interval: type: integer recurrence: type: string enum: - continuous - periodic - episodic - once - once-per-asset description: episodic notifies once per episode, then on renotification_interval, until rearm_after_checks non-matching checks re-arm it; time checks only trigger_dataset: type: string description: Dataset whose new records gate firing; while it stalls an episodic episode cannot re-arm. time checks only trigger_dataset_field: type: string description: Explicit dotted path (e.g. data.last_updated_at) on the trigger dataset's newest record to gate on (epoch seconds); blank uses the record timestamp segment: type: array items: type: string enum: - drilling - completion - intervention topic: type: string requires_validation: type: boolean reopen_interval: type: integer description: Seconds before a cleared alert may reopen max_open_duration: type: integer description: Max seconds a legacy-mode alert stays open before it is replaced renotification_interval: type: integer description: Seconds between notifications while an alert or an episode stays open; null notifies once rearm_after_checks: type: integer description: Consecutive non-matching evaluations that re-arm an episodic definition; null means one required_notification_types: type: array description: Notification types a subscriber must enable items: type: string limit: type: object description: Unused. Reserved by a 2017 migration; no code reads it. version: type: integer company_id: type: integer format: int64 user_id: type: integer format: int64 description: Owner of a personal definition; null for company rules alert_group_id: type: integer format: int64 description: Alert group this definition belongs to dashboard_id: type: integer format: int64 workflow_id: type: integer format: int64 template_id: type: integer format: int64 alert_tags: type: array description: Alert tags applied to this definition items: properties: id: type: integer format: int64 name: type: string color: type: string description: 'Hex color code such as #1a2b3c, blank when unset' parent_id: type: integer format: int64 created_at: type: string format: date-time updated_at: type: string format: date-time alert_definition_filters: type: array items: $ref: '#/definitions/AlertDefinitionFilterV2' AlertDefinitionFilterLevelV2: properties: id: type: integer format: int64 level: type: string threshold: type: number active: type: boolean created_at: type: string format: date-time updated_at: type: string format: date-time AlertDefinitionConstraintV2: properties: id: type: integer format: int64 data_point: type: string operator: type: string value: type: string created_at: type: string format: date-time updated_at: type: string format: date-time AlertDefinitionFilterV2: properties: id: type: integer format: int64 data_point: type: string sample_interval: type: integer sample_function: type: string period: type: integer operator: type: string threshold: type: number constraint_logic: type: string last_record_mode: type: boolean data_point_friendly_name: type: string required_constraint: type: boolean unit_type: type: string description: Quantity kind for the threshold, e.g. length, percent, unitless. Null when unset. created_at: type: string format: date-time updated_at: type: string format: date-time alert_definition_constraints: type: array items: $ref: '#/definitions/AlertDefinitionConstraintV2' alert_definition_filter_levels: type: array items: $ref: '#/definitions/AlertDefinitionFilterLevelV2' AlertDefinitionV2List: properties: data: type: array items: $ref: '#/definitions/AlertDefinitionV2' AlertDefinitionV2Single: properties: data: type: object $ref: '#/definitions/AlertDefinitionV2' AlertGroupAlertDefinitionPayload: properties: alert_definition: type: object properties: id: type: integer format: int64 description: Alert definition to assign to the group AlertGroupAlertDefinitionBulkPayload: properties: alert_definition: type: object properties: ids: type: array items: type: integer format: int64 AlertGroupAlertDefinitionUnassignResult: properties: status: type: string description: Always 'unassigned' count: type: integer description: Number of definitions unassigned; bulk responses only AlertDefinitionV2Payload: properties: alert_definition: type: object properties: name: type: string description: type: string level: type: string enum: - info - warning - critical active: type: boolean description: Whether the definition evaluates. Set false to deactivate. type: type: string enum: - personal - company check_type: type: string enum: - time - event filter_logic: type: string period: type: integer interval: type: integer recurrence: type: string enum: - continuous - periodic - episodic - once - once-per-asset description: episodic notifies once per episode, then on renotification_interval, until rearm_after_checks non-matching checks re-arm it; time checks only trigger_dataset: type: string description: Dataset whose new records gate firing; while it stalls an episodic episode cannot re-arm. time checks only trigger_dataset_field: type: string description: Explicit dotted path (e.g. data.last_updated_at) on the trigger dataset's newest record to gate on (epoch seconds); blank uses the record timestamp reopen_interval: type: integer description: Seconds before a cleared alert may reopen max_open_duration: type: integer description: Max seconds a legacy-mode alert stays open before it is replaced renotification_interval: type: integer description: Seconds between notifications while an alert or an episode stays open; null notifies once rearm_after_checks: type: integer description: Consecutive non-matching evaluations that re-arm an episodic definition; null means one topic: type: string requires_validation: type: boolean required_notification_types: type: array description: Notification types a subscriber must enable items: type: string limit: type: object description: Unused. Reserved by a 2017 migration; no code reads it. alert_group_id: type: integer format: int64 dashboard_id: type: integer format: int64 workflow_id: type: integer format: int64 identifier: type: string segment: type: array items: type: string enum: - drilling - completion - intervention alert_tag_ids: type: array description: Alert tags to apply; replaces the current set. An empty array clears all tags; omitting the key leaves them untouched items: type: integer format: int64 filters: type: array description: Nested filters. An empty array clears all filters; omitting the key leaves them untouched. Records with an :id are updated, the rest created. items: properties: id: type: integer format: int64 data_point: type: string sample_interval: type: integer sample_function: type: string period: type: integer operator: type: string threshold: type: number constraint_logic: type: string last_record_mode: type: boolean data_point_friendly_name: type: string required_constraint: type: boolean unit_type: type: string description: Quantity kind for the threshold, e.g. length, percent, unitless. constraints: type: array items: properties: id: type: integer format: int64 data_point: type: string operator: type: string value: type: string levels: type: array items: properties: id: type: integer format: int64 level: type: string threshold: type: number active: type: boolean AlertGroup: properties: id: type: string type: type: string attributes: type: object required: - id - name - company_id properties: id: type: integer format: int64 name: type: string description: type: string company_id: type: integer format: int64 workflow_id: type: integer format: int64 segment: type: string enum: - drilling - completion - intervention users_count: type: integer description: Number of members in the group alert_definitions_count: type: integer description: Number of alert definitions in the group created_at: type: string format: date-time updated_at: type: string format: date-time AlertGroupList: properties: data: type: array items: $ref: '#/definitions/AlertGroup' AlertGroupSingle: properties: data: type: object $ref: '#/definitions/AlertGroup' AlertGroupPayload: properties: alert_group: type: object properties: name: type: string description: type: string company_id: type: integer format: int64 workflow_id: type: integer format: int64 segment: type: string enum: - drilling - completion - intervention AlertGroupUser: properties: id: type: string type: type: string attributes: type: object required: - id - alert_group_id - user_id properties: id: type: integer format: int64 alert_group_id: type: integer format: int64 user_id: type: integer format: int64 alert_role_id: type: integer format: int64 description: Assigned alert role; NULL when the member has no role alert_role: type: object description: Embedded summary of the assigned role; NULL when none is assigned properties: id: type: integer format: int64 name: type: string description: type: string created_at: type: string format: date-time relationships: type: object properties: user: type: object description: The embedded member; the full user object is returned in the response `included` array (UserMinimalSerializer) properties: data: type: object properties: id: type: string type: type: string AlertGroupUserList: properties: data: type: array items: $ref: '#/definitions/AlertGroupUser' AlertGroupUserSingle: properties: data: type: object $ref: '#/definitions/AlertGroupUser' AlertGroupUserPayload: properties: alert_group_user: type: object properties: user_id: type: integer format: int64 alert_role_id: type: integer format: int64 description: Optional alert role to assign on add AlertGroupScope: properties: id: type: string type: type: string attributes: type: object required: - id - alert_group_id - scope_type - scope_id properties: id: type: integer format: int64 alert_group_id: type: integer format: int64 scope_type: type: string enum: - Well - Rig - Pad - FracFleet - InterventionUnit description: Target model; allowed types depend on the group's segment scope_id: type: integer format: int64 description: Id in the scope_type table AlertGroupScopeList: properties: data: type: array items: $ref: '#/definitions/AlertGroupScope' AlertGroupScopeSingle: properties: data: type: object $ref: '#/definitions/AlertGroupScope' AlertGroupScopePayload: properties: alert_group_scope: type: object properties: scope_type: type: string enum: - Well - Rig - Pad - FracFleet - InterventionUnit scope_id: type: integer format: int64 AlertGroupConfiguration: properties: id: type: string type: type: string attributes: type: object required: - id - alert_group_id properties: id: type: integer format: int64 alert_group_id: type: integer format: int64 alert_definition_id: type: integer format: int64 description: NULL for global modifiers scope_type: type: string enum: - Well - Rig - Pad - FracFleet - InterventionUnit description: NULL for group defaults scope_id: type: integer format: int64 description: NULL for group defaults severity_override: type: string thresholds: type: object description: Flat threshold values for this configuration row created_at: type: string format: date-time updated_at: type: string format: date-time AlertGroupConfigurationList: properties: data: type: array items: $ref: '#/definitions/AlertGroupConfiguration' AlertGroupConfigurationSingle: properties: data: type: object $ref: '#/definitions/AlertGroupConfiguration' AlertGroupConfigurationPayload: properties: alert_group_configuration: type: object properties: alert_definition_id: type: integer format: int64 scope_type: type: string enum: - Well - Rig - Pad - FracFleet - InterventionUnit scope_id: type: integer format: int64 severity_override: type: string thresholds: type: object AlertGroupUserInput: properties: user_id: type: integer format: int64 alert_role_id: type: integer format: int64 description: Optional role; ignored on bulk_destroy AlertGroupUserBulkPayload: properties: alert_group_users: type: array items: $ref: '#/definitions/AlertGroupUserInput' AlertGroupScopeInput: properties: scope_type: type: string enum: - Well - Rig - Pad - FracFleet - InterventionUnit scope_id: type: integer format: int64 AlertGroupScopeBulkPayload: properties: alert_group_scope: type: object properties: scopes: type: array items: $ref: '#/definitions/AlertGroupScopeInput' AlertGroupConfigurationInput: properties: alert_definition_id: type: integer format: int64 scope_type: type: string enum: - Well - Rig - Pad - FracFleet - InterventionUnit scope_id: type: integer format: int64 severity_override: type: string thresholds: type: object AlertGroupConfigurationBulkCreatePayload: properties: alert_group_configurations: type: array items: $ref: '#/definitions/AlertGroupConfigurationInput' AlertGroupConfigurationBulkDestroyPayload: properties: alert_group_configuration: type: object properties: ids: type: array items: type: integer format: int64 BulkDeleteResult: properties: status: type: string description: Always 'deleted' count: type: integer description: Number of records removed AlertGroupMergePayload: required: - source_alert_group_id properties: source_alert_group_id: type: integer format: int64 description: Group to consume. It is destroyed once its members, scopes, alert definitions and configurations move to the target. AlertNotificationTypeV2: properties: id: type: string type: type: string attributes: type: object required: - id - identifier - name properties: id: type: integer format: int64 identifier: type: string name: type: string AlertNotificationTypeV2List: properties: data: type: array items: $ref: '#/definitions/AlertNotificationTypeV2' AlertAbilityCatalogItem: required: - resource_class - ability - name properties: resource_class: type: string description: Resource the ability applies to enum: - Alert ability: type: string description: Assignable ability key (e.g. acknowledge, close, escalate) name: type: string description: Localized display name for the matrix UI AlertAbilityCatalog: properties: data: type: array items: $ref: '#/definitions/AlertAbilityCatalogItem' AlertRole: properties: id: type: string type: type: string description: Always 'alert_role' attributes: type: object required: - id - name - company_id properties: id: type: integer format: int64 name: type: string description: type: string company_id: type: integer format: int64 member_count: type: integer description: Number of group memberships assigned this role abilities: type: array description: The ability grants attached to this role items: properties: ability: type: string resource_class: type: string created_at: type: string format: date-time updated_at: type: string format: date-time AlertRoleList: properties: data: type: array items: $ref: '#/definitions/AlertRole' AlertRoleSingle: properties: data: type: object $ref: '#/definitions/AlertRole' AlertRolePayload: properties: alert_role: type: object required: - name properties: name: type: string description: type: string AlertRoleAbilitiesPayload: properties: abilities: type: array description: Full replacement set of ability grants for the role; applied atomically items: required: - ability - resource_class properties: ability: type: string description: Ability key from the catalog (GET /v2/alert_abilities) resource_class: type: string description: Resource class for the ability enum: - Alert AlertRbacStatus: properties: alert_rbac_enabled: type: boolean description: Whether per-company alert RBAC enforcement is on AlertOccurrence: required: - id properties: id: type: integer format: int64 alert_id: type: integer format: int64 asset_id: type: integer format: int64 start_at: type: string format: date-time finish_at: type: string format: date-time severity: type: string enum: - critical - warning - info description: Occurrence severity level decision_path: type: string description: DEPRECATED baked narrative; use decision_path_template + decision_path_units decision_path_template: type: string description: Decision path with {token} placeholders for each numeric value/threshold decision_path_units: type: object description: Map of token => { value, unit_type }; value is the raw magnitude, client formats after converting trigger_data_at: type: string format: date-time description: Timestamp of the trigger dataset record this occurrence fired on trigger_dataset: type: string description: Dataset that record came from data: type: object description: Arbitrary occurrence data payload alert_classification: type: string enum: - unclassified - true_positive - false_positive - informational - threshold_reached description: Classification of this fire classified_at: type: string format: date-time classified_by: description: User who classified this occurrence, null otherwise $ref: '#/definitions/AlertUserV2' rearmed_at: type: string format: date-time description: When this episode ended; null while it is open rearm_streak: type: integer description: Consecutive non-matching checks counted against the definition's rearm_after_checks acknowledged_at: type: string format: date-time description: When this episode was acknowledged acknowledged_by: description: User who acknowledged this occurrence, null otherwise $ref: '#/definitions/AlertUserV2' closed_at: type: string format: date-time description: When the alert was closed during this episode created_at: type: string format: date-time updated_at: type: string format: date-time AlertOccurrenceClassificationPayload: properties: alert_occurrence: type: object required: - alert_classification properties: alert_classification: type: string enum: - unclassified - true_positive - false_positive - informational - threshold_reached example: alert_occurrence: alert_classification: true_positive AlertTotals: properties: total: type: integer description: Total number of alerts matching the filters top_alerts: type: array description: Alert definitions with the most alerts, ordered by count descending items: type: object properties: id: type: integer description: Alert definition id, the value accepted by the alert_definition_id filter name: type: string level: type: string count: type: integer level_counts: type: object description: Alert counts keyed by alert definition level level_percentages: type: object description: Percentage of the total keyed by alert definition level, rounded to 2 decimals Alert: required: - id properties: id: type: integer format: int64 company_id: type: integer format: int64 alert_definition: type: object asset: type: object status: type: string format: int64 status_changed_at: type: string format: date-time decision_path: type: string description: DEPRECATED baked narrative; use decision_path_template + decision_path_units decision_path_template: type: string description: Decision path with {token} placeholders for each numeric value/threshold decision_path_units: type: object description: Map of token => { value, unit_type }; value is the raw magnitude, client formats after converting data: type: object alert_at: type: string format: date-time last_alert_at: type: string format: date-time closed_at: type: string format: date-time created_at: type: string format: date-time updated_at: type: string format: date-time occurrences: type: integer validated: type: boolean validated_at: type: string format: date-time validated_by: type: object acknowledged: type: boolean acknowledged_at: type: string format: date-time acknowledged_by: type: object alert_classification: type: string classified_at: type: string format: date-time classified_by: type: object comments: type: array items: $ref: '#/definitions/Comment' likes: type: array items: $ref: '#/definitions/Like' comments_amount: type: integer likes_count: type: integer active_escalation: description: Active escalation if one exists, null otherwise $ref: '#/definitions/AlertEscalation' AlertAcknowledgementPayload: properties: alert: type: object properties: acknowledged: type: boolean example: alert: acknowledged: true AlertBulkAcknowledgementPayload: properties: alert: type: object properties: ids: type: array items: type: integer acknowledged: type: boolean example: alert: ids: - 1 - 2 - 3 acknowledged: true AlertClassificationPayload: properties: alert: type: object properties: alert_classification: type: string example: alert: alert_classification: true_positive AlertTransitionPayload: properties: alert: type: object properties: status: type: string description: Target status notes: type: string description: Optional notes describing the reason for the transition example: alert: status: closed notes: Investigated and resolved. AlertEscalation: required: - id - alert_id properties: id: type: integer format: int64 alert_id: type: integer format: int64 source: type: string enum: - manual - automatic description: How the escalation was triggered notes: type: string closed_at: type: string format: date-time description: Null when escalation is active created_at: type: string format: date-time escalated_by: type: object properties: id: type: integer format: int64 description: Present when user exists first_name: type: string description: Present when user exists last_name: type: string description: Present when user exists profile_photo: type: string description: Present when user exists email: type: string removed: type: boolean description: True when user has been removed escalated_to: type: array items: type: object properties: id: type: integer format: int64 description: Present when user exists first_name: type: string description: Present when user exists last_name: type: string description: Present when user exists profile_photo: type: string description: Present when user exists email: type: string removed: type: boolean description: True when user has been removed AlertEscalatePayload: properties: escalation: type: object properties: user_ids: type: array description: IDs of users to escalate to (must be in same company) items: type: integer notes: type: string example: escalation: user_ids: - 42 - 99 notes: Needs immediate attention. AlertActivity: required: - id properties: id: type: integer format: int64 alert_id: type: integer format: int64 activity: type: string enum: - status_change - classification - level_change - escalation - renotified - rearmed detail: type: string enum: - open - acknowledged - closed - invalid - unclassified - true_positive - false_positive - informational - threshold_reached notes: type: string started_at: type: string format: date-time ended_at: type: string format: date-time created_at: type: string format: date-time user: type: object description: User who created the activity properties: id: type: integer format: int64 first_name: type: string description: Present when user exists last_name: type: string description: Present when user exists profile_photo: type: string description: Present when user exists email: type: string removed: type: boolean description: True when user has been removed AlertV2: properties: id: type: string type: type: string attributes: type: object required: - id - status properties: id: type: integer format: int64 company_id: type: integer format: int64 alert_definition_id: type: integer format: int64 asset_id: type: integer format: int64 status: type: string status_changed_at: type: string format: date-time decision_path: type: string description: DEPRECATED baked narrative; use decision_path_template + decision_path_units decision_path_template: type: string description: Decision path with {token} placeholders for each numeric value/threshold decision_path_units: type: object description: Map of token => { value, unit_type }; value is the raw magnitude, client formats after converting data: type: object latest_data: type: object alert_at: type: string format: date-time last_alert_at: type: string format: date-time closed_at: type: string format: date-time occurrences: type: integer comments_amount: type: integer likes_count: type: integer segment: type: array items: type: string enum: - drilling - completion - intervention level: type: string stage_numbers: type: array description: Completion stage numbers when present in alert data items: type: integer validated: type: boolean validated_at: type: string format: date-time validated_by: description: User who validated the alert, null otherwise $ref: '#/definitions/AlertUserV2' acknowledged: type: boolean acknowledged_at: type: string format: date-time acknowledged_by: description: User who acknowledged the alert, null otherwise $ref: '#/definitions/AlertUserV2' alert_classification: type: string enum: - unclassified - true_positive - false_positive - informational - threshold_reached classified_at: type: string format: date-time classified_by: description: User who classified the alert, null otherwise $ref: '#/definitions/AlertUserV2' comment_authors: type: array description: Distinct comment authors, most recently commented first, capped at 3. Present on the index only; comments_amount still reports the full count items: $ref: '#/definitions/AlertUserV2' alert_definition: type: object properties: id: type: integer format: int64 name: type: string description: type: string level: type: string type: type: string enum: - personal - company active: type: boolean requires_validation: type: boolean segment: type: array items: type: string enum: - drilling - completion - intervention topic: type: string alert_group_id: type: integer format: int64 dashboard_id: type: integer format: int64 asset: type: object properties: id: type: integer format: int64 name: type: string type: type: string parent_asset: type: object properties: id: type: integer format: int64 name: type: string frac_fleet: type: object properties: id: type: integer format: int64 name: type: string pad: type: object properties: id: type: integer format: int64 name: type: string intervention_unit: type: object description: Intervention unit linked to the alert, null ids otherwise properties: id: type: integer format: int64 name: type: string active_escalation: type: object description: Open escalation on GET /v2/alerts/{id} and POST /v2/alerts/{id}/escalate, null when no escalation is open. The property itself is omitted on responses that do not include alert details (GET /v2/alerts, GET /v2/alerts/details) and when excluded by a sparse fieldset. properties: id: type: integer format: int64 alert_id: type: integer format: int64 source: type: string notes: type: string closed_at: type: string format: date-time created_at: type: string format: date-time escalated_by: description: User who escalated the alert $ref: '#/definitions/AlertEscalationUserV2' escalated_to: type: array description: Users the alert is escalated to items: $ref: '#/definitions/AlertEscalationUserV2' created_at: type: string format: date-time updated_at: type: string format: date-time AlertUserV2: properties: id: type: integer format: int64 email: type: string first_name: type: string last_name: type: string profile_photo: type: string AlertEscalationUserV2: properties: id: type: integer format: int64 description: Present when the user record still exists email: type: string first_name: type: string description: Present when the user record still exists last_name: type: string description: Present when the user record still exists profile_photo: type: string description: Present when the user record still exists removed: type: boolean description: True when the user has been removed; only email is then available AlertV2List: properties: data: type: array items: $ref: '#/definitions/AlertV2' AlertV2Single: properties: data: type: object $ref: '#/definitions/AlertV2' AlertClassificationPayloadV2: properties: alert: type: object required: - alert_classification properties: alert_classification: type: string enum: - unclassified - true_positive - false_positive - informational - threshold_reached example: alert: alert_classification: true_positive AlertCheckResultV2: properties: notify: type: boolean description: Whether the alert passes every notification rule for the current user message: type: string description: '''Subscribed'' when notify is true, the first failed rule otherwise' subscription: type: boolean description: Whether the user has a subscription to the alert definition types: type: array description: Notification type identifiers of the subscription (plus list), empty without a subscription items: type: string AlertTotalsV2: properties: total: type: integer description: Total number of alerts matching the filters top_alerts: type: array description: Alert definitions with the most alerts, ordered by count descending items: type: object properties: id: type: integer description: Alert definition id, the value accepted by the alert_definition_id filter name: type: string level: type: string count: type: integer level_counts: type: object description: Alert counts keyed by alert level level_percentages: type: object description: Percentage of the total keyed by alert level, rounded to 2 decimals AlertDetailsV2: properties: id: type: string type: type: string attributes: type: object properties: alert_id: type: integer format: int64 alert_at: type: string format: date-time alert_definition_id: type: integer format: int64 alert_definition_name: type: string active: type: boolean segment: type: string enum: - drilling - completion - intervention description: First segment key of the Alert Definition subscription: type: boolean description: True when the current user has a desktop subscription with subscribed assets for the Alert Definition level: type: string asset_name: type: string parent_asset_id: type: integer format: int64 parent_asset_name: type: string frac_fleet_id: type: integer format: int64 frac_fleet_name: type: string intervention_unit_id: type: integer format: int64 intervention_unit_name: type: string topic: type: string risk_value: type: number description: Minimum risk value found in the alert data, null otherwise AlertDetailsV2List: properties: data: type: array items: $ref: '#/definitions/AlertDetailsV2' AlertTag: properties: id: type: string type: type: string attributes: type: object required: - id - name - company_id properties: id: type: integer format: int64 name: type: string color: type: string description: 'Hex color code in #rrggbb form; empty string when the tag has no color' company_id: type: integer format: int64 parent_id: type: integer format: int64 description: Parent tag id; NULL for top-level tags. Tags nest at most one level deep alert_definitions_count: type: integer description: Alert definitions directly tagged with this tag. Deleting the tag removes it from all of them children_count: type: integer description: Child tags, which are destroyed along with this tag created_at: type: string format: date-time updated_at: type: string format: date-time AlertTagList: properties: data: type: array items: $ref: '#/definitions/AlertTag' AlertTagSingle: properties: data: type: object $ref: '#/definitions/AlertTag' AlertTagPayload: properties: alert_tag: type: object properties: name: type: string color: type: string description: 'Optional six digit hex color code, with or without the leading #, stored as #rrggbb in lower case. Send an empty string to clear it. Defaults to an empty string' parent_id: type: integer format: int64 description: Optional parent tag; must reference a top-level tag in the same company company_id: type: integer format: int64 description: Create only; defaults to the current company AlertWorkflow: required: - id - name - flow properties: id: type: integer format: int64 name: type: string flow: type: object description: State machine definition. Keys are status names; each value has a "transitions" array. properties: status_name: type: object properties: transitions: type: array items: type: object properties: status: type: string description: Target status interaction: type: string description: e.g. "immediate" hidden: type: boolean description: Whether this transition is hidden from the UI default: type: boolean description: True for the global default workflow company_id: type: integer format: int64 description: Null for global workflows created_at: type: string format: date-time updated_at: type: string format: date-time example: id: 1 name: V1 Workflow flow: open: transitions: - status: acknowledged interaction: immediate - status: closed interaction: immediate - status: invalid interaction: immediate hidden: true acknowledged: transitions: - status: closed interaction: immediate - status: invalid interaction: immediate hidden: true closed: transitions: [] invalid: transitions: [] default: true company_id: null created_at: '2026-04-09T12:00:00Z' updated_at: '2026-04-09T12:00:00Z' AlertWorkflowList: type: array items: $ref: '#/definitions/AlertWorkflow' AlertWorkflowV2: properties: id: type: string type: type: string attributes: type: object required: - id - name - flow properties: id: type: integer format: int64 name: type: string flow: type: object description: State machine definition. Keys are status names; each value has a "transitions" array. properties: status_name: type: object properties: transitions: type: array items: type: object properties: status: type: string description: Target status interaction: type: string description: e.g. "immediate" hidden: type: boolean description: Whether this transition is hidden from the UI default: type: boolean description: True for the global default workflow company_id: type: integer format: int64 description: Null for global workflows created_at: type: string format: date-time updated_at: type: string format: date-time AlertWorkflowV2List: properties: data: type: array items: $ref: '#/definitions/AlertWorkflowV2' AlertWorkflowV2Single: properties: data: type: object $ref: '#/definitions/AlertWorkflowV2' AuthenticationPlatformV2: properties: id: type: string type: type: string example: authentication_platform attributes: type: object properties: id: type: integer format: int64 name: type: string example: Auth0 identifier: type: string description: Stable slug used in code paths (e.g. `auth0`, `dex`). Unique across platforms. example: auth0 options: type: object description: Provider-specific broker config. Keys matching the secret-scrubbing pattern (`secret`, `password`, `token`, `*key`, `credential`, `passphrase`, `authCode`, `signature`) are stripped from responses. `passwordless` is preserved as a known false positive. example: server: https://corva.auth0.com/ created_at: type: string format: date-time updated_at: type: string format: date-time AuthenticationPlatformV2List: properties: data: type: array items: $ref: '#/definitions/AuthenticationPlatformV2' AuthenticationPlatformV2Single: properties: data: type: object $ref: '#/definitions/AuthenticationPlatformV2' AppReview: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 reviewed_at: type: string format: date-time status: type: string relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string app: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string user: type: array properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 12345 type: app_review attributes: id: 12345 status: requested reviewed_at: '2020-01-01T08:00:00.000Z' relationships: company: data: id: 299 type: company reviwed_by: data: id: 475 type: user app: data: id: 999 type: app AppReviewList: properties: data: type: array items: $ref: '#/definitions/AppReview' Favorites: required: - id - type properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: string format: uuid name: type: string visible_rerun_id: type: integer description: If the asset has been rerun and the rerun has been set visible, the ID of the rerun asset is returned here. relationships: type: object example: id: 7926 type: asset attributes: name: The Best Well status: active relationships: {} Asset: required: - id - type properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: string format: uuid name: type: string visible_rerun_id: type: integer description: If the asset has been rerun and the rerun has been set visible, the ID of the rerun asset is returned here. merging_rerun_as_source: type: boolean merging_rerun_as_target: type: boolean running_rerun_as_source: type: boolean running_rerun_as_target: type: boolean source_well: type: object description: If the asset has been created during rerun this property will contain mane and ID of source well properties: id: type: integer name: type: string rig_changed_at: type: datetime format: timestamp description: Datetime when the rig was last changed. Returned for Asset::Well. country: type: string relationships: type: object example: id: 7926 type: asset attributes: company_id: 123 company_name: My Company type: Asset::Well asset_type: well timezone: America/Chicago lon_lat: longitude: -103.0 latitude: 32.0 created_at: '2020-01-01T00:00:00.000Z' last_active_at: '2020-01-01T00:00:00.000Z' status: active state: drilling visibility: visible rig_changed_at: '2026-06-20T20:01:35.000Z' name: The Best Well parent_asset_id: 12345 parent_asset_name: A Big Rig root_asset_id: 123 root_asset_name: The Permian Program api_number: 00-111-22222 county: Eddy country: United States basin: Permian area: Midland string_design: '4' merging_rerun_as_source: false merging_rerun_as_target: true running_rerun_as_source: false running_rerun_as_target: false top_hole: raw: 32.000000, -103.000000 coordinates: - 32.0 - -103.0 bottom_hole: {} contractor_name: The Contractor directional_driller: The DD mud_company: The Mud Company customer_well_id: customer-id-909488abtx original_well_id: '4444' original_well_created_at: '2020-01-01T00:00:00.000Z' settings: day_shift_start_time: 06:00 spud_release: [] last_mongo_refresh: '2020-01-01T00:00:00.000Z' stats: spud_at: '2020-01-01T00:00:00.000Z' well_start: 100 well_end: 1000 total_cost: 10000 total_time: 999 total_depth: 10000 first_active_at: 149900000 witsml_data_frequency: 5 source_well: id: 12345 name: Rerun Source Well custom_properties: anything: goes relationships: company: data: id: '123' type: company parent_asset: data: id: '12345' type: asset active_child: data: id: '54321' type: asset last_active_child: data: id: '54321' type: asset AssetAutocomplete: properties: data: type: array example: data: - Enclave Oil Rig - San Francisco - Enclave Oil Rig, Dock AssetResolver: properties: programs: type: array items: properties: ? '{:properties=>##:object, :properties=>##:integer, :format=>:string}>, :type=>#:string}>, :attributes=>#:object, :properties=>##:int64}>}>}>}>}>}>}' : type: object properties: id: type: integer format: string type: type: string attributes: type: object properties: asset_id: type: int64 rigs: type: array items: properties: ? '{:properties=>##:object, :properties=>##:integer, :format=>:string}>, :type=>#:string}>, :attributes=>#:object, :properties=>##:int64}>}>}>}>}>}>}' : type: object properties: id: type: integer format: string type: type: string attributes: type: object properties: asset_id: type: int64 wells: type: array items: properties: ? '{:properties=>##:object, :properties=>##:integer, :format=>:string}>, :type=>#:string}>, :attributes=>#:object, :properties=>##:int64}>}>}>}>}>}>}' : type: object properties: id: type: integer format: string type: type: string attributes: type: object properties: asset_id: type: int64 example: programs: - data: id: '8283' type: program attributes: asset_id: 5547 rigs: - data: id: '1149' type: rig attributes: asset_id: 10592 wells: - data: id: '93' type: well attributes: asset_id: 98283 TypeWell: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 subject_well_id: type: integer format: int64 offset_well_id: type: integer format: int64 subject_well_asset_id: type: integer format: int64 offset_well_asset_id: type: integer format: int64 example: id: 555 type: type_well attributes: id: 555 subject_well_id: 123 offset_well_id: 456 subject_well_asset_id: 7527348 offset_well_asset_id: 12347575 Rerun: required: - id - type properties: id: type: string type: type: string attributes: type: object properties: asset_id: type: integer format: int64 primary: type: boolean created_at: type: datetime updated_at: type: datetime source_asset: type: boolean settings: type: object relationships: type: object example: id: '1243' type: rerun attributes: asset_id: 123 primary: null created_at: '2020-01-01T00:00:00.000Z' updated_at: '2020-01-01T00:00:00.000Z' source_asset: true settings: {} relationships: {} AncestorsResponse: example: data: id: 123 attributes: ancestor_ids: - 121 - 122 ProgramPayload: properties: name: type: string example: name: My Program Program: required: - id properties: id: type: integer format: int64 attributes: type: object properties: id: type: string format: uuid name: type: string relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: string type: type: string example: id: 7926 type: program attributes: name: My Program relationships: company: data: id: 823 type: company ProgramCluster: properties: cid: type: integer center: type: string radius: type: float program_ids: type: array asset_ids: type: array example: cid: 1 center: longitude: 45.4845 latitude: 46.3234 radius: 0.282855334465 program_ids: - 123 - 124 asset_ids: - 123 - 124 PadPayload: properties: name: type: string program: type: integer example: name: My Pad program_id: 482 drillout_unit_id: 923 Pad: required: - id properties: id: type: integer format: int64 attributes: type: object properties: id: type: string format: uuid name: type: string current_frac_fleet_id: type: integer format: int64 last_active_at: type: string format: date-time active: type: boolean parent_frac_fleet_id: type: integer format: int64 current: type: boolean relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: string type: type: string program: type: object properties: data: type: object properties: id: type: string type: type: string drillout_unit: type: object properties: data: type: object properties: id: type: string type: type: string pad_frac_fleets: type: object properties: data: type: array wells: type: object properties: data: type: array active_wells: type: object properties: data: type: array example: id: 9210 type: pad attributes: name: My Pad current_frac_fleet_id: 782 last_active_at: '2020-01-01T00:00:00.000Z' active: true parent_frac_fleet_id: 782 current: true relationships: company: data: id: 823 type: company program: data: id: 9913 type: program drillout_unit: data: id: 273 type: drillout_unit pad_frac_fleets: data: - id: 923 type: pad_frac_fleet - id: 928 type: pad_frac_fleet wells: data: - id: 16771 type: well - id: 16919 type: well - id: 17231 type: well active_wells: data: - id: 16771 type: well - id: 16919 type: well included: - id: 902 type: pad_frac_fleet attributes: current: true last_current_at: '2020-01-01T00:00:00.000Z' pad: id: 8834 name: My Pad created_at: '2020-01-01T00:00:00.000Z' updated_at: '2020-01-01T00:00:00.000Z' frac_fleet: id: 9642 name: My Frac Fleet created_at: '2020-01-01T00:00:00.000Z' updated_at: '2020-01-01T00:00:00.000Z' - id: 16771 type: well attributes: name: 'Well #1' - id: 16919 type: well attributes: name: 'Well #2' - id: 17231 type: well attributes: name: 'Well #3' - id: 273 type: drillout_unit attributes: name: 'Drillout Unit #1' PadDetails: example: data: - id: '7232' type: well attributes: asset_id: 8823 name: My Pad Well 1 status: active relationships: app_streams: data: - id: '1' type: app_stream - id: '7' type: app_stream - id: '11392' type: well attributes: asset_id: 19423 name: My Pad Well 2 status: active relationships: app_streams: data: - id: '17' type: app_stream included: - id: '1' type: app_stream attributes: id: '1' status: complete segment: drilling source_type: drilling log_type: time first_active_at: '2020-01-01T00:00:00.000Z' last_active_at: '2020-01-01T00:00:00.000Z' - id: '7' type: app_stream attributes: id: '1' status: active segment: completion source_type: frac log_type: time first_active_at: '2020-01-01T00:00:00.000Z' last_active_at: '2020-01-01T00:00:00.000Z' - id: '17' type: app_stream attributes: id: '1' status: active segment: drilling source_type: drilling log_type: time first_active_at: '2020-01-01T00:00:00.000Z' last_active_at: '2020-01-01T00:00:00.000Z' PadCluster: properties: cid: type: integer center: type: string radius: type: float pad_ids: type: array example: cid: 1 center: longitude: 45.4845 latitude: 46.3234 radius: 0.282855334465 pad_ids: - 123 - 124 RigPayload: properties: name: type: string edr_provider: type: string billing_company_ids: type: array settings: type: object example: name: My Rig edr_provider: EDR billing_company_ids: - 9595 - 4129 Rig: required: - id properties: id: type: integer format: int64 attributes: type: object properties: id: type: string format: uuid name: type: string edr_provider: type: string settings: type: object relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: string type: type: string billing_companies: type: object properties: data: type: array example: id: 1184 type: rig attributes: name: My Rig edr_provider: some provider settings: {} relationships: company: data: id: 823 type: company billing_companies: data: - id: 923 type: company - id: 928 type: company program: data: id: 23 type: program active_well: data: id: 123092 type: well last_active_well: data: id: 123092 type: well RigCluster: properties: cid: type: integer center: type: string radius: type: float rig_ids: type: array asset_ids: type: array active_well_ids: type: array example: cid: 1 center: longitude: 45.4845 latitude: 46.3234 radius: 0.282855334465 rig_ids: - 123 - 124 asset_ids: - 123 - 124 active_well_ids: - 123 - 124 WellCacheRecord: example: asset_id: 1 well_id: 2 company_id: 1 timestamp: 149900000 last_active_at: 149900000 location: type: Point coordinates: longitude: 45.4845 latitude: 46.3234 corva#wits: data: state: Drilling hole_depth: 1234 bit_depth: 1234 corva#data-drillstring: {} DrilloutUnitPayload: properties: name: type: string pad_id: type: integer well_id: type: integer billing_company_ids: type: array example: name: My Drillout Unit pad_id: 823 well_id: 22812 billing_company_ids: - 456 - 45 - 98 DrilloutUnit: required: - id properties: id: type: integer format: int64 attributes: type: object properties: id: type: string format: uuid name: type: string relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: string type: type: string program: type: object properties: data: type: object properties: id: type: string type: type: string pad: type: object properties: data: type: object properties: id: type: string type: type: string well: type: object properties: data: type: object properties: id: type: string type: type: string billing_companies: type: object properties: data: type: array example: id: 9232 type: drillout_unit attributes: name: My Drillout Unit relationships: company: data: id: 823 type: company program: data: id: 23 type: program pad: data: id: 1094 type: pad well: data: id: 123092 type: well billing_companies: data: - id: 923 type: company - id: 928 type: company DrilloutUnitCluster: properties: cid: type: integer center: type: string radius: type: float drillout_unit_ids: type: array well_ids: type: array example: cid: 1 center: longitude: 45.4845 latitude: 46.3234 radius: 0.282855334465 drillout_unit_ids: - 123 - 124 well_ids: - 123 - 124 WellPayload: properties: name: type: string identifier: type: string status: type: string state: type: string visibility: type: string area: type: string custom_properties: type: object settings: type: object qc_by: type: integer qc_at: type: integer format: timestamp rig_classification: type: string enum: - land - platform - floating floating_vessel_subtype: type: string enum: - semi_submersible - drill_ship platform_rig_type: type: string enum: - fixed_platform - jackup_rig customer_well_id: type: string alternative_names: type: array alternative_wellbore_names: type: array wellbore_name: type: string example: name: My Well identifier: 42-501-20130-03-00 status: active state: drilling visibility: visible area: San Pedro custom_properties: key: value company_id: 1 pad_id: 2 rig_id: 3 program_id: 4 drillout_unit_id: 5 customer_well_id: customer-id-909488abtx settings: county: '' basin: '' api_number: 1234 timezone: America/New_York drilling_afe_number: '' contractor_name: '' directional_driller: '' mud_company: '' string_design: 4 target_formation: '' day_shift_start_time: 8 spud_release: rig_up: '1' spud: '1' release: '1' id: 10 top_hole: raw: 40,20 coordinates: - 40 - 20 bottom_hole: raw: 40,20 coordinates: - 40 - 20 lon_lat: longitude: 40 latitude: 20 qc_by: 123 qc_at: 1433487600 rig_classification: floating floating_vessel_subtype: semi_submersible platform_rig_type: fixed_platform alternative_names: - Name - New alternative_wellbore_names: - Wellbore Name - New Wellbore wellbore_name: Wellbore1 Well: required: - id properties: id: type: integer format: int64 attributes: type: object properties: id: type: string format: uuid name: type: string identifier: type: string status: type: string state: type: string visibility: type: string area: type: string custom_properties: type: object settings: type: object stats: type: object last_active_at: type: datetime format: timestamp last_drilling_at: type: datetime format: timestamp qc_by: type: integer qc_at: type: integer format: timestamp rig_classification: type: string enum: - land - platform - floating floating_vessel_subtype: type: string enum: - semi_submersible - drill_ship platform_rig_type: type: string enum: - fixed_platform - jackup_rig rerun: type: boolean rig_changed_at: type: datetime format: timestamp description: Datetime when the rig was last changed. customer_well_id: type: string air_gap: type: float ground_elevation: type: float water_depth: type: float wellbore_name: type: string alternative_names: type: array alternative_wellbore_names: type: array ready_for_archive: type: object properties: ready_for_archive: type: boolean ready_to_arhive_errors: type: array items: type: string relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: string type: type: string program: type: object properties: data: type: object properties: id: type: string type: type: string pad: type: object properties: data: type: object properties: id: type: string type: type: string rig: type: object properties: data: type: object properties: id: type: string type: type: string drillout_unit: type: object properties: data: type: object properties: id: type: string type: type: string example: id: 1184 type: well attributes: name: My Well status: active state: drilling rig_changed_at: '2026-06-20T20:01:35.000Z' customer_well_id: customer-id-909488abtx rerun: false alternative_names: - Name - New alternative_wellbore_names: - Wellbore Name - New Wellbore ready_for_archive: ready_for_archive: false ready_to_arhive_errors: - Well status is not in complete, idle - Well was updated recently relationships: company: data: id: 823 type: company program: data: id: 23 type: program pad: data: id: 3909 type: rig rig: data: id: 6621 type: rig drillout_unit: data: id: 923 type: drillout_unit WellCluster: properties: cid: type: integer center: type: string radius: type: float well_ids: type: array asset_ids: type: array example: cid: 1 center: longitude: 45.4845 latitude: 46.3234 radius: 0.282855334465 well_ids: - 123 - 124 asset_ids: - 123 - 124 FracFleetPayload: properties: name: type: string example: name: My Frac Fleet program_id: 9232 FracFleetUpdatePayload: properties: name: type: string contract_data: type: object example: name: Updating Frac Fleet program_id: 9232 billing_company_ids: - 456 - 1234 - 5678 contract_data: something: value FracFleet: required: - id properties: id: type: integer format: int64 attributes: type: object properties: id: type: string format: uuid name: type: string current_pad_id: type: integer format: int64 relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: string type: type: string billing_companies: type: object properties: data: type: array program: type: object properties: data: type: object properties: id: type: string type: type: string pads: type: object properties: data: type: array example: id: 1184 type: frac_fleet attributes: name: My Frac Fleet current_pad_id: 772 relationships: company: data: id: 823 type: company billing_companies: data: - id: 923 type: company - id: 928 type: company program: data: id: 9923 type: program pads: data: - id: 772 type: pad included: - id: 9923 type: program attributes: name: My Program - id: 902 type: pad_frac_fleet attributes: current: true last_current_at: '2020-01-01T00:00:00.000Z' pad: id: 8834 name: My Pad created_at: '2020-01-01T00:00:00.000Z' updated_at: '2020-01-01T00:00:00.000Z' frac_fleet: id: 9642 name: My Frac Fleet created_at: '2020-01-01T00:00:00.000Z' updated_at: '2020-01-01T00:00:00.000Z' - id: 923 type: company attributes: name: My Program - id: 928 type: company attributes: name: My Program FracFleetCluster: properties: cid: type: integer center: type: string radius: type: float frac_fleet_ids: type: array example: cid: 1 center: longitude: 45.4845 latitude: 46.3234 radius: 0.282855334465 frac_fleet_ids: - 123 - 124 WirelinePayload: properties: name: type: string example: name: My Wireline Wireline: required: - id properties: id: type: integer format: int64 attributes: type: object properties: id: type: string format: uuid name: type: string relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: string type: type: string example: id: 1184 type: wireline attributes: name: My Wireline relationships: company: data: id: 823 type: company AuthenticationSchemaV2: properties: id: type: string type: type: string example: authentication_schema attributes: type: object properties: id: type: integer format: int64 title: type: string provider: type: string example: samlp connection: type: string owner_company_id: type: integer format: int64 authentication_platform_id: type: integer format: int64 options: type: object is_global: type: boolean is_owned_by_current_company: type: boolean created_at: type: string format: date-time updated_at: type: string format: date-time AuthenticationSchemaV2List: properties: data: type: array items: $ref: '#/definitions/AuthenticationSchemaV2' AuthenticationSchemaV2Single: properties: data: type: object $ref: '#/definitions/AuthenticationSchemaV2' CompanyDomainV2: properties: id: type: string type: type: string example: company_domain attributes: type: object properties: id: type: integer format: int64 domain: type: string description: Email domain (e.g. `acme.example`) that the SSO wizard auto-routes through this company's configured IdP. example: acme.example exclusive: type: boolean description: 'When true, the domain may not be claimed by any other company. Validation refuses an `exclusive: true` claim if any other company already has the same domain (regardless of their exclusive flag).' created_at: type: string format: date-time updated_at: type: string format: date-time CompanyDomainV2List: properties: data: type: array items: $ref: '#/definitions/CompanyDomainV2' CompanyDomainV2Single: properties: data: type: object $ref: '#/definitions/CompanyDomainV2' CompanyDomainV2Payload: properties: company_domain: type: object required: - domain properties: domain: type: string example: acme.example exclusive: type: boolean example: false DashboardAppAnnotation: required: - id - body - asset_id - app_id properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 body: type: text active_until: type: string format: date-time comments_count: type: integer asset_id: type: integer format: int64 app_id: type: integer format: int64 attachment: type: object company_id: type: integer format: int64 created_at: type: string format: date-time updated_at: type: string format: date-time relationships: type: object properties: user: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string mentioned_users: type: array items: properties: data: type: object properties: id: type: integer format: int64 type: type: string comment_users: type: array items: properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 42 type: app_annotation attributes: body: My new dashboard app annotation active_until: '2020-01-31T15:57:48.539Z' comments_count: 4 asset_id: 12345 app_id: 12345 created_at: '2020-01-31T15:57:48.539Z' updated_at: '2020-01-31T15:57:48.539Z' attachment: file_name: report.pdf s3_link: some_s3_link relationships: user: data: id: 2499 type: user mentioned_users: - data: id: 2499 type: user comment_users: - data: id: 2499 type: user DashboardAppAnnotationList: properties: data: type: array items: $ref: '#/definitions/DashboardAppAnnotation' included: type: array items: $ref: '#/definitions/UserMinimal' DashboardAppWithLastAnnotationList: type: array items: $ref: '#/definitions/DashboardAppWithLastAnnotation' DashboardAppWithLastAnnotation: properties: id: type: integer format: int64 last_annotation: type: object $ref: '#/definitions/DashboardAppAnnotation' DashboardAppAnnotationSingle: properties: data: type: object $ref: '#/definitions/DashboardAppAnnotation' included: type: array items: $ref: '#/definitions/UserMinimal' DashboardAppAnnotationPayload: properties: app_annotation: type: object properties: body: type: text active_until: type: string format: date-time asset_id: type: integer format: int64 app_id: type: integer format: int64 settings: type: object attachment: type: object example: app_annotation: body: My App Annotation active_until: Wed, 29 Jan 2020 19:11:00 +0000 asset_id: 12344 app_id: 12344 settings: assetId: 12344 attachment: file_name: report.pdf s3_link: some_s3_link DashboardAppAnnotationUpdatePayload: properties: app_annotation: type: object properties: body: type: text active_until: type: string format: date-time attachment: type: object example: app_annotation: body: My App Annotation active_until: Wed, 29 Jan 2020 19:11:00 +0000 attachment: file_name: report.pdf s3_link: some_s3_link DashboardApp: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 settings: type: object coordinates: type: object name: type: string category: type: string segment: type: array relationships: type: object properties: app: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string package: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 12345 type: dashboard attributes: id: '123' settings: {} coodrinates: x: 0 y: 15 name: Traces category: Category1 segment: - drilling - completion relationships: app: data: id: '1' type: app package: data: id: '1' type: package DashboardAppList: properties: data: type: array items: $ref: '#/definitions/DashboardApp' DashboardAppBatchUpdatePayload: properties: dashboard_apps: type: array example: dashboard_apps: - id: 123 settings: {} coordinates: x: 0 y: 1 - id: 124 settings: {} coordinates: x: 0 y: 3 BulkCreatedDashboardApps: items: $ref: '#/definitions/DashboardApp' DashboardFolder: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 name: type: string position: type: integer format: int64 user_id: type: integer format: int64 type: type: string relationships: type: object properties: user: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string dashboard_folder_dashboard_shares: type: object properties: data: type: array example: id: 123 type: dashboard_folder attributes: id: '123' name: Folder 1 user_id: 1234 type: archive position: 1 relationships: user: data: id: '1234' type: user dashboard_folder_dashboard_shares: data: [] DashboardFolderPayload: properties: dashboard_folder: type: object properties: name: type: string position: type: integer example: dashboard_folder: name: Folder X position: 13 DashboardFolderList: properties: data: type: array items: $ref: '#/definitions/DashboardFolder' DashboardFolderDashboardShare: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 dashboard_folder_id: type: integer format: int64 dashboard_share_id: type: integer format: int64 position: type: integer format: int64 relationships: type: object properties: dashboard_folder: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string dashboard_share: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 123 type: dashboard_folder_dashboard_share attributes: id: '123' dashboard_folder_id: 123 dashboard_share_id: 1234 position: 1 relationships: dashboard_folder: data: id: '123' type: dashboard_folder dashboard_share: data: id: '1234' type: dashboard_share DashboardFolderDashboardSharePayload: properties: dashboard_folder_dashboard_share: type: object properties: dashboard_share_id: type: integer position: type: integer example: dashboard_folder_dashboard_share: dashboard_share_id: 123 position: 13 DashboardFolderDashboardShareUpdatePayload: properties: dashboard_folder_dashboard_share: type: object properties: position: type: integer example: dashboard_folder_dashboard_share: position: 13 DashboardFolderShare: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 owner_id: type: integer format: int64 dashboard_folder_id: type: integer format: int64 shared_by_id: type: integer format: int64 viewed: type: boolean created_at: type: string format: date-time updated: type: string format: date-time relationships: type: object properties: owner: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string shared_by: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string dashboard_folder: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 123 type: dashboard_folder_share attributes: id: '123' owner_id: 1234 shared_by_id: 1230 dashboard_folder_id: 1234 viewed: false created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' relationships: owner: data: id: '1234' type: user shared_by: data: id: '1234' type: user dashboard_folder: data: id: '1234' type: dashboard_folder DashboardFolderShareList: properties: data: type: array items: $ref: '#/definitions/DashboardFolderShare' included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: - id: 12345 type: dashboard_folder_share attributes: id: 12345 owner_id: 12345 shared_by_id: 12340 dashboard_folder_id: 12345 viewed: false created_at: '2024-08-07T09:11:52.326Z' updated_at: '2024-08-07T09:11:52.326Z' relationships: owner: data: id: 12345 type: user shared_by: data: id: 12340 type: user dashboard_folder: data: id: 12345 type: dashboard_folder included: - id: 12345 type: user attributes: id: 12345 first_name: John last_name: Smith - id: 12340 type: user attributes: id: 12340 first_name: Mary last_name: Smith - id: 12345 type: dashboard_folder attributes: id: 12345 first_name: Mary last_name: Smith DashboardFolderShareCreatePayload: properties: dashboard_folder_share: type: object properties: owner_id: type: integer dashboard_folder_id: type: integer example: dashboard_folder_share: owner_id: 1234 dashboard_folder_id: 1234 DashboardFolderShareUpdatePayload: properties: dashboard_folder_share: type: object properties: viewed: type: boolean example: dashboard_folder_share: viewed: true Dashboard: required: - id - name - type - layout - slug - order properties: id: type: integer format: int64 name: type: string type: type: string layout: type: string slug: type: string icon: type: string locked: type: boolean order: type: integer format: int64 settings: type: object segment: type: array apps: type: array reports: type: array data_filters: type: array timezone: type: string unit_system: type: string category: type: string owner_name: type: string owner_dashboard_share_id: type: integer format: int64 example: id: 24 name: Traces type: asset_dashboard layout: singleApp slug: traces-13978158c5 icon: traces locked: true order: 13 settings: show_control_apps: true segment: - drilling - completion apps: [] reports: [] data_filters: [] timezone: America/Chicago unit_system: Unit System category: usageAnalyticsDashboard owner_name: Derek Smith owner_dashboard_share_id: 12345 DashboardV2: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 type: type: string order: type: integer format: int64 name: type: string layout: type: string slug: type: string locked: type: boolean icon: type: string settings: type: object segment: type: array timezone: type: string unit_system: type: string category: type: string owner_name: type: string owner_dashboard_share_id: type: integer format: int64 relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string reports: type: object properties: data: type: array data_filters: type: object properties: data: type: array apps: type: object properties: data: type: array example: id: 12345 type: dashboard attributes: id: '123' type: asset_dashboard order: 13 name: Traces layout: singleApp slug: traces-13978158c5 locked: true icon: traces settings: show_control_apps: true timezones: pad_id_1: America/Chicago unit_systems: frac_fleet_id_1: Imperial segment: - drilling - completion timezone: America/Chicago unit_system: Unit System category: usageAnalyticsDashboard owner_name: Derek Smith owner_dashboard_share_id: 12345 relationships: company: data: id: '1' type: company data_filters: data: [] apps: data: [] DashboardV2Minimum: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 type: type: string order: type: integer format: int64 name: type: string slug: type: string icon: type: string owner_id: type: integer format: int64 owner_type: type: string visibility: type: string dashboard_share_id: type: integer format: int64 dashboard_share_role: type: string shared_by: type: string segment: type: array layout: type: string unit_system: type: string category: type: string last_viewed_at: type: string format: date-time settings: type: object properties: dashboard_custom_icon: type: string dashboard_icon_color: type: string example: id: 12345 type: dashboard_minimal attributes: id: '123' type: asset_dashboard order: 13 name: Traces slug: traces-13978158c5 icon: traces owner_id: 11 owner_type: User visibility: visible dashboard_share_id: 21 dashboard_share_role: creator shared_by: Derek Smith segment: - drilling layout: singleApp unit_system: Unit System category: usageAnalyticsDashboard last_viewed_at: '2025-01-01T08:00:00.000Z' settings: dashboard_custom_icon: corva.bha dashboard_icon_color: '#FF0000' DashboardV2Payload: properties: dashboard: type: object properties: type: type: string name: type: string layout: type: string icon: type: string settings: type: object properties: show_control_apps: type: boolean timezones: type: object properties: asset_id_1: type: string unit_systems: type: object properties: asset_id_1: type: string order: type: integer segment: type: array timezone: type: string unit_system: type: string category: type: string example: dashboard: type: asset_dashboard name: Traces layout: singleApp icon: traces settings: show_control_apps: true timezones: pad_id_1: America/Chicago unit_systems: frac_fleet_id_1: Imperial order: 13 segment: - drilling - completion timezone: America/Chicago unit_system: Unit System category: usageAnalyticsDashboard DashboardV2List: properties: data: type: array items: $ref: '#/definitions/DashboardV2' DashboardMinimumV2List: properties: data: type: array items: $ref: '#/definitions/DashboardV2Minimum' DashboardTimezones: properties: asset_type: type: string asset_name: type: string timezone: type: string parent_asset_type: type: string parent_asset_name: type: string example: asset_type: Well asset_name: Well with timezone timezone: America/Chicago parent_asset_type: FracFleet parent_asset_name: Active Frac Fleet WellPlanChecklistV2: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 name: type: string company_id: type: integer format: int64 position: type: integer created_at: type: string format: date-time updated_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 12345 type: well_plan_checklist attributes: id: 12345 name: Pre-spud company_id: 1 position: 0 created_at: '2026-06-18T08:00:00.000Z' updated_at: '2026-06-18T08:00:00.000Z' relationships: company: data: id: '1' type: company WellPlanChecklistV2Response: properties: data: $ref: '#/definitions/WellPlanChecklistV2' WellPlanChecklistV2List: properties: data: type: array items: $ref: '#/definitions/WellPlanChecklistV2' WellPlanV2: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 name: type: string status: type: string enum: - draft - review - approved kind: type: string enum: - default - template company_id: type: integer format: int64 well_id: type: integer format: int64 rig_id: type: integer format: int64 created_at: type: string format: date-time updated_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string well: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string rig: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string default_planning_dashboards: type: object properties: data: type: array items: properties: id: type: integer format: int64 type: type: string custom_planning_dashboards: type: object properties: data: type: array items: properties: id: type: integer format: int64 type: type: string target_well_plan_copies: type: object properties: data: type: array items: properties: id: type: integer format: int64 type: type: string example: id: 12345 type: well_plan attributes: id: 12345 name: Imported plan status: draft kind: default company_id: 1 well_id: 2 rig_id: 3 created_at: '2026-06-18T08:00:00.000Z' updated_at: '2026-06-18T08:00:00.000Z' relationships: company: data: id: '1' type: company well: data: id: '2' type: well rig: data: id: '3' type: rig default_planning_dashboards: data: [] custom_planning_dashboards: data: - id: '10' type: well_planning_dashboard target_well_plan_copies: data: - id: '999' type: well_plan_copy WellPlanV2Payload: required: - well_plan properties: well_plan: type: object properties: name: type: string status: type: string enum: - draft - review - approved kind: type: string enum: - default - template company_id: type: integer format: int64 well_id: type: integer format: int64 rig_id: type: integer format: int64 example: well_plan: name: Imported plan status: draft kind: default company_id: 1 well_id: 2 rig_id: 3 WellPlanV2UpdatePayload: required: - well_plan properties: well_plan: type: object properties: name: type: string status: type: string enum: - draft - review - approved kind: type: string enum: - default - template company_id: type: integer format: int64 well_id: type: integer format: int64 rig_id: type: integer format: int64 example: well_plan: name: Updated plan status: approved WellPlanV2Response: properties: data: $ref: '#/definitions/WellPlanV2' WellPlanV2List: properties: data: type: array items: $ref: '#/definitions/WellPlanV2' WellPlanCopyV2: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 source_well_plan_id: type: integer format: int64 target_well_plan_id: type: integer format: int64 action: type: string enum: - import_custom_dashboards status: type: string enum: - queued - processing - completed settings: type: object description: Input options for the copy (e.g. a subset of dashboard IDs to import) steps: type: object description: 'Progress tracking: completed step names and copied dashboard IDs' created_at: type: string format: date-time updated_at: type: string format: date-time example: id: 999 type: well_plan_copy attributes: id: 999 source_well_plan_id: 12345 target_well_plan_id: 67890 action: import_custom_dashboards status: completed settings: dashboard_ids: - 10 - 11 steps: completed: - copy_custom_dashboards copied_dashboard_ids: - 10 - 11 created_at: '2026-07-17T08:00:00.000Z' updated_at: '2026-07-17T08:01:00.000Z' WellPlanCopyV2Payload: required: - source_well_plan_id - target_well_plan_id properties: source_well_plan_id: type: integer format: int64 description: Well plan to copy from target_well_plan_id: type: integer format: int64 description: Well plan to copy into copy_action: type: string enum: - import_custom_dashboards description: Copy action to perform (defaults to import_custom_dashboards) settings: type: object description: Optional. Restrict the copy to specific dashboards properties: dashboard_ids: type: array items: type: integer format: int64 example: source_well_plan_id: 12345 target_well_plan_id: 67890 copy_action: import_custom_dashboards settings: dashboard_ids: - 10 - 11 WellPlanCopyV2Response: properties: data: $ref: '#/definitions/WellPlanCopyV2' WellPlanningDashboardV2: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 type: type: string order: type: integer format: int64 name: type: string layout: type: string slug: type: string locked: type: boolean icon: type: string settings: type: object segment: type: array show_workflows_help: type: boolean timezone: type: string unit_system: type: string category: type: string relationships: type: object properties: well: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string company: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string apps: type: object properties: data: type: array example: id: 12345 type: well_planning_dashboard attributes: id: '12345' type: well_planning_dashboard order: 13 name: Well Planning layout: grid slug: well-planning-13978158c5 locked: false icon: well-planning settings: show_control_apps: true timezones: asset_id_1: America/Chicago unit_systems: asset_id_1: Imperial segment: - drilling show_workflows_help: true timezone: America/Chicago unit_system: Imperial category: wellPlanningDashboard relationships: well: data: id: '1' type: well company: data: id: '1' type: company apps: data: [] WellPlanningDashboardV2Payload: required: - asset_id - dashboard properties: asset_id: type: integer format: int64 dashboard: type: object properties: name: type: string type: type: string description: custom_well_planning_dashboard (default) or default_well_planning_dashboard layout: type: string icon: type: string show_workflows_help: type: boolean settings: type: object properties: show_control_apps: type: boolean timezones: type: object properties: asset_id_1: type: string unit_systems: type: object properties: asset_id_1: type: string global_offset_wells: type: object order: type: integer segment: type: array timezone: type: string unit_system: type: string category: type: string example: asset_id: 1 dashboard: name: Well Planning type: custom_well_planning_dashboard layout: grid icon: well-planning show_workflows_help: true settings: show_control_apps: true timezones: asset_id_1: America/Chicago unit_systems: asset_id_1: Imperial global_offset_wells: {} order: 13 segment: - drilling timezone: America/Chicago unit_system: Imperial category: wellPlanningDashboard WellPlanningDashboardV2UpdatePayload: required: - dashboard properties: dashboard: type: object properties: name: type: string layout: type: string icon: type: string show_workflows_help: type: boolean settings: type: object properties: show_control_apps: type: boolean timezones: type: object properties: asset_id_1: type: string unit_systems: type: object properties: asset_id_1: type: string global_offset_wells: type: object order: type: integer segment: type: array timezone: type: string unit_system: type: string category: type: string example: dashboard: name: Updated Well Planning layout: grid icon: well-planning show_workflows_help: true settings: show_control_apps: true timezones: asset_id_1: America/Chicago unit_systems: asset_id_1: Imperial global_offset_wells: {} order: 13 segment: - drilling timezone: America/Chicago unit_system: Imperial category: wellPlanningDashboard WellPlanningDashboardV2Response: properties: data: $ref: '#/definitions/WellPlanningDashboardV2' WellPlanningDashboardV2List: properties: data: type: array items: $ref: '#/definitions/WellPlanningDashboardV2' WellPlanningDashboardAppV2Payload: properties: app_key: type: string name: type: string category: type: string settings: type: object coordinates: type: object example: app_key: corva.well-planning.app settings: key: value coordinates: x: 1 y: 2 w: 3 h: 4 WellPlanningDashboardAppV2BulkCreatePayload: properties: app_key: type: string name: type: string category: type: string assets: type: array items: properties: assetId: type: string rigId: type: string fracFleetId: type: string padId: type: string settings: type: object coordinates: type: object example: app_key: corva.well-planning.app assets: - assetId: 1 - rigId: 2 - fracFleetId: 3 padId: 4 settings: key: value coordinates: x: 1 y: 2 w: 3 h: 4 Data: required: - id - name properties: id: type: integer format: int64 name: type: string options: type: object items: type: array example: _id: 5e3085c5cdc1ec37e5635a8c provider: corva dataset: operations company_id: 852 asset_id: 19423 version: 1 timestamp: 1580251823 data: start_timestamp: 1580195293 end_timestamp: 1580251823 shift: day & night operation: '12' operation_name: Tripping(Entire) operation_time: 56530 start_depth: 15355.02 end_depth: 7660.01 depth_change: -7695.01 start_bit_depth: 12521.55 end_bit_depth: 7660.01 bit_depth_change: -4861.54 well_section: Production Curve hole_size: 8.75 bha_id: '' DataFilter: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 name: type: string details: type: string options: type: string filter_type: type: string query_string: type: string created_at: type: string updated_at: type: string dashboard_id: type: integer format: int64 company_id: type: integer format: int64 example: id: 12345 type: data_filter attributes: id: '123' name: DataFilter1 details: '' options: '' filter_type: static query_string: '' created_at: '2021-03-01T13:01:45.872Z' updated_at: '2021-03-01T13:01:45.872Z' dashboard_id: 123 company_id: 1 DataFilterList: properties: data: type: array items: $ref: '#/definitions/DataFilter' DataFilterPayload: properties: name: type: string filter_type: type: string query_string: type: string details: type: array options: type: object example: name: DateRange filter_type: static query_string: '' details: - id: uuid1 key: All value: all checked: false - id: uuid2 key: All value: all checked: false options: selection: single is_default: true default_key: All selected_key: All DataFilterPayload2: properties: id: type: integer format: int64 name: type: string filter_type: type: string query_string: type: string details: type: array options: type: object example: id: 123 name: DateRange filter_type: static query_string: '' details: - id: uuid1 key: All value: all checked: false - id: uuid2 key: All value: all checked: false options: selection: single is_default: true default_key: All selected_key: All File: properties: key: type: string last_modified: type: string format: date-time content_length: type: integer format: int64 example: key: provider_5/recent_historical.csv last_modified: Thu, 09 Jan 2020 18:11:37 +0000 content_length: 7723 SignedFile: properties: signed_url: type: string file_name: type: string display_name: type: string bucket: type: string example: signed_url: https://s3.amazonaws.com/corva-files/mycompany/1578593498/report.pdf?X-Amz-Expires=900&X-Amz-Date=20200109T181138Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=REDACTED_AWS_ACCESS_KEY_ID/20200109/us-east-1/s3/aws4_request&X-Amz-SignedHeaders=content-type%3Bhost%3Bx-amz-acl&X-Amz-Signature=5d0c4bc61fce17b937c3ac59730f1db12aced8bb53df0d82842707bf8783afaf file_name: mycompany/1578593498/report.pdf display_name: report.pdf bucket: corva-files Group: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 name: type: string restricted_by_ip: type: boolean has_blacklisted_datasets: type: boolean created_at: type: string format: date-time updated_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 12345 type: group attributes: id: '12345' name: Group 1 restricted_by_ip: true has_blacklisted_datasets: true created_at: '2020-01-01T08:00:00.000Z' updated_at: '2020-01-01T13:00:00.000Z' relationships: company: id: '1' type: company GroupUser: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 first_name: type: string last_name: type: string email: type: string title: type: string role: type: string profile_photo: type: string company_id: type: integer format: int64 created_at: type: string format: date-time updated_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 12345 type: user attributes: id: '12345' first_name: John last_name: Doe email: example@email.com title: Title role: user profile_photo: aws_path company_id: 111 created_at: '2020-01-01T08:00:00.000Z' updated_at: '2020-01-01T13:00:00.000Z' relationships: company: id: '1' type: company GroupCreatePayload: properties: group: type: object properties: name: type: string company_id: type: integer restricted_by_ip: type: boolean copy_from_id: type: integer example: group: name: Group 1 company_id: 1 restricted_by_ip: true copy_from_id: 567 GroupUpdatePayload: properties: group: type: object properties: name: type: string company_id: type: integer restricted_by_ip: type: boolean example: group: name: Group 1 company_id: 1 restricted_by_ip: true GroupList: properties: data: type: array items: $ref: '#/definitions/Group' GroupConnection: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 name: type: string relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 12345 type: group attributes: id: '12345' name: Group 1 relationships: {} GroupConnectionList: properties: data: type: array items: $ref: '#/definitions/GroupConnection' GroupsUsersPayload: properties: group_id: type: integer example: group_id: 12345 WellViewIngest: required: - asset_id - data_type - timestamp properties: asset_id: type: integer format: int64 data_type: type: string timestamp: type: integer format: int64 data: type: object example: asset_id: 24 data_type: bha timestamp: 1577836800 data: nested: data another: value WellViewBHA: properties: id: type: integer format: int64 name: type: string options: type: object items: type: array example: dataset: bha results: - _id: 5a26fbe28a5da5323c7f6d8f asset_id: 1 timestamp: 1508774989 data: components: - outer_diameter_tooljoint: 5.38 family: dp length: 31 material: Steel component_length: 31 inner_diameter_tooljoint: 3 name: Drillpipe order: 0 outer_diameter: 4.5 linear_weight: 18.44 inner_diameter: 3.83 grade: S135 class: Premium weight: 571.64 expanded: true length_tooljoint: 1.5 id: b1466040-a91b-11e7-ab30-a5e060b4f02f connection_type: CET43 - family: sub length: 3.56 material: Steel name: CET43 B x 3 1/2IF P order: 1 outer_diameter: 5.38 linear_weight: 75 inner_diameter: 2.25 weight: 267 expanded: false id: afa81c50-b5ce-11e7-b4df-676cb51f71f4 connection_type: 'CET43 to 3 .50 IF ' - family: dc length: 30.31 material: Non Magnetic component_length: 30.31 name: NMDC order: 2 outer_diameter: 4.69 linear_weight: 39.43 inner_diameter: 2.69 weight: 1195.02 id: 14e8fa80-b5cf-11e7-b4df-676cb51f71f4 connection_type: 3.50 IF sub_category: NonMag start_timestamp: 1508861340 id: 8 start_depth: 10160 planning: false version: 1 provider: corva dataset: data.drillstring company_id: 1 WellViewFrac: properties: id: type: integer format: int64 name: type: string options: type: object items: type: array example: dataset: frac results: - _id: 5c9a92d834022a04c4acb6d3 timestamp: 1536912275 version: 1 provider: corva dataset: completion.wits asset_id: 1 stage_number: 1 company_id: 1 data: wellhead_pressure: -5.34 slurry_flow_rate_in: 0 clean_flow_rate_in: 0 total_clean_volume_in: 6185.35 total_slurry_volume_in: 6470.48 total_pump_spm: null state: Pressure Testing or Bad Data elapsed_time: 52 total_chemical_rate_in: 1.47 cum_pumped_slurry_volume: 0 total_proppant_concentration: 0 cum_proppant_concentration: 0 total_proppant_mass: 0 cum_proppant_mass: 0 pressure_change_rate: 0.1299999999999999 timestamp: 1536912275 powder_breaker: 0 gel: 1.47 proppant_1_mass: 0 proppant_2_mass: 0 proppant_1_concentration: 0 proppant_2_concentration: 0 WellViewFracStageDesign: properties: id: type: integer format: int64 name: type: string options: type: object items: type: array example: dataset: frac_stage_design results: - _id: 5c9a92d834022a04c4acb6d3 timestamp: 1587481401 version: 1 provider: corva dataset: completion.data.stages asset_id: 1 company_id: 1 data: chemicals: - type: Clay Stabilizer unit_type: volume unit: gal amount: 105 - type: Biocide unit_type: volume unit: gal amount: 63 - type: Liquid FR unit_type: volume unit: gal amount: 410 - type: Liquid Breaker unit_type: volume unit: gal amount: 100 - type: Scale Inhibitor unit_type: volume unit: gal amount: 85 perforation_phasing: null perforated_length: 80 fluids: - type: Slickwater amount: 10000 unit_type: oil unit: bbl stage_number: 1 fluids_specification: - type: Slickwater component: - type: Clay Stabilizer name: KCl unit: gpt amount: 0.25 - type: Biocide name: Bio unit: gpt amount: 0.15 - type: Diverter name: Diverter unit: ppt amount: 1.1 - type: Liquid FR name: FR unit: gpt amount: 1 - type: Liquid Breaker name: Breaker unit: gpt amount: 0.25 - type: Scale Inhibitor name: SI unit: gpt amount: 0.2 plug_depth: 21100 temp: null flush_volume: 294.2 shot_per_foot: null bottom_perforation: 21090 formation_name: Formation 123 proppants: - type: 100 Mesh amount: 105000 unit_type: mass unit: lb - type: 40/70 NWS amount: 245000 unit_type: mass unit: lb total_shots: null top_perforation: 21009 WellViewFracStageSummary: properties: id: type: integer format: int64 name: type: string options: type: object items: type: array example: dataset: frac_stage_summary results: - _id: 5c9a92d834022a04c4acb6d3 timestamp: 1536912275 version: 1 provider: corva dataset: completion.data.actual-stages asset_id: 1 company_id: 1 data: average_pumping_rate: 87.8 average_treating_pressure: 9084 bottom_perforation: 20674 break_down: 6194 chemicals: - type: Scale Inhibitor unit_type: volume unit: gal amount: 30.2 - type: Liquid FR unit_type: volume unit: gal amount: 540.5 end_isip: 2840 end_time: 1536912275 fluids: - type: Slickwater unit_type: oil unit: bbl amount: 10500 flush_volume: 948 formation_gradient: 0.72 formation_name: Wolfcamp A hydraulic_power: 12450.25 max_pumping_rate: 101.6 max_treating_pressure: 10148 pad_isip: null perforated_length: 120 plug_depth: 19809 proppants: - type: 40/70 RBS unit_type: mass unit: lb amount: 12012.2 - type: 100 Mesh unit_type: mass unit: lb amount: 165500 stage_number: 2 stand_by_time: 1 start_time: 1536912255 top_perforation: 21765 total_shots: 32 total_pump_time: null vertical_depth: null WellViewFracStageSummaryCalculated: properties: id: type: integer format: int64 name: type: string options: type: object items: type: array example: dataset: frac_stage_summary_calculated results: - _id: 5c9a92d834022a04c4acb6d3 timestamp: 1536912275 version: 1 provider: corva dataset: completion.predictions asset_id: 1 company_id: 1 data: max_flow_rate: 74.98 breakdown: - wellhead_pressure: 8403.12 slurry_flow_rate_in: 55.9523 elapsed_time: 3636 clean_flow_rate_in: 0 total_clean_volume_in: 0 total_slurry_volume_in: 0 total_chemical_rate_in: 0 total_proppant_concentration: 0 total_proppant_mass: 0 bottomhole_proppant_concentration: 0 hydrostatic_pressure: 0 inverse_hydrostatic_pressure: 0 backside_pressure: null timestamp: 1536912275 enzyme_breaker: 0 scale_inhibitor: 0 surfactant: 0 friction_reducer: 0 cross_linker: 0 acid: 0 gel: 0 ph_adjusting_agent: 0 accelerator: 0 fluid_loss: 0 ploymer_plug: 0 acid_inhibitor: 0 acid_retarder: 0 emulsifier: 0 clay_stabilizer: 0 non_emulsifier: 0 fines_suspender: 0 anti_sludge: 0 iron_control: 0 oxygen_scavenger: 0 mutual_solvent: 0 corrosion_inhibitor: 0 paraffin_control: 0 biocide: 0 instant_crosslinker: 0 delayed_crosslinker: 0 liquid_breaker: 0 powder_breaker: 0 divertor: 0 powder_gel: 0 powder_friction_reducer: 0 powder_enzyme_breaker: 0 proppant_1_concentration: 0 proppant_2_concentration: 0 proppant_1_mass: 0 proppant_2_mass: 0 isip: - wellhead_pressure: 3848.64 slurry_flow_rate_in: 1.8126 elapsed_time: 7450 clean_flow_rate_in: 0 total_clean_volume_in: 0 total_slurry_volume_in: 0 total_chemical_rate_in: 0 total_proppant_concentration: 0 total_proppant_mass: 0 bottomhole_proppant_concentration: 0 hydrostatic_pressure: 0 inverse_hydrostatic_pressure: 0 backside_pressure: null timestamp: 1536912275 enzyme_breaker: 0 scale_inhibitor: 0 surfactant: 0 friction_reducer: 0 cross_linker: 0 acid: 0 gel: 0 ph_adjusting_agent: 0 accelerator: 0 fluid_loss: 0 ploymer_plug: 0 acid_inhibitor: 0 acid_retarder: 0 emulsifier: 0 clay_stabilizer: 0 non_emulsifier: 0 fines_suspender: 0 anti_sludge: 0 iron_control: 0 oxygen_scavenger: 0 mutual_solvent: 0 corrosion_inhibitor: 0 paraffin_control: 0 biocide: 0 instant_crosslinker: 0 delayed_crosslinker: 0 liquid_breaker: 0 powder_breaker: 0 divertor: 0 powder_gel: 0 powder_friction_reducer: 0 powder_enzyme_breaker: 0 proppant_1_concentration: 0 proppant_2_concentration: 0 proppant_1_mass: 0 proppant_2_mass: 0 optimal_pressure_window: null ave_breakdown: 8401 ave_isip: 3967 ave_pumping_rate: 74.4 total_slurry_volume: 5060 total_clean_volume: 4934 total_proppant_mass: 121048 ave_proppant_concentration: 0.591 max_treating_pressure: 8320 ave_treating_pressure: 6362 pumping_duration: 4978 duration_to_max_rate: 1325 hydraulic_horse_power: 11700 delta_pressure: 2397 fracturing_operation_interval: start_timestamp: 1535933614 end_timestamp: 1535938595 fracturing_operation_interval_pressure: start_timestamp: 1535933503 end_timestamp: 1535938830 main_pumping_start_timestamp: 1535533614 proppant_injection_start_timestamp: 1535534940 flush_volume: null flush_volumes: flush_volume_design: null flush_volume_actual: 361.26 fracture_gradient: null cumulative_chemicals: enzyme_breaker: 0 scale_inhibitor: 0 surfactant: 0 friction_reducer: 0 cross_linker: 0 acid: 0 gel: 0 ph_adjusting_agent: 0 accelerator: 0 fluid_loss: 0 ploymer_plug: 0 acid_inhibitor: 0 acid_retarder: 0 emulsifier: 0 clay_stabilizer: 0 non_emulsifier: 0 fines_suspender: 0 anti_sludge: 0 iron_control: 0 oxygen_scavenger: 0 mutual_solvent: 0 corrosion_inhibitor: 0 paraffin_control: 0 biocide: 24.16 instant_crosslinker: 0 delayed_crosslinker: 0 liquid_breaker: 0 powder_breaker: 0.2 divertor: 0 powder_gel: 0 powder_friction_reducer: 0 powder_enzyme_breaker: 0 ave_chemicals: enzyme_breaker: 0 scale_inhibitor: 0 surfactant: 0 friction_reducer: 0 cross_linker: 0 acid: 0 gel: 0 ph_adjusting_agent: 0 accelerator: 0 fluid_loss: 0 ploymer_plug: 0 acid_inhibitor: 0 acid_retarder: 0 emulsifier: 0 clay_stabilizer: 0 non_emulsifier: 0 fines_suspender: 0 anti_sludge: 0 iron_control: 0 oxygen_scavenger: 0 mutual_solvent: 0 corrosion_inhibitor: 0 paraffin_control: 0 biocide: 0.12 instant_crosslinker: 0 delayed_crosslinker: 0 liquid_breaker: 0 powder_breaker: 0 divertor: 0 powder_gel: 0 powder_friction_reducer: 0 powder_enzyme_breaker: 0 WellViewJobSettings: properties: id: type: integer format: int64 name: type: string options: type: object items: type: array example: dataset: job_settings results: - _id: 5c9a92d834022a04c4acb6d3 timestamp: 1536912275 version: 1 provider: corva dataset: completion.data.job-settings asset_id: 1 company_id: 1 data: equivalent_length_of_surface_equipment: 0.98 goal_rate: 259.8 max_goal_pressure: 12300 maximum_allowable_surface_treating_pressure: 0 maximum_casing_hanger_pressure: 0 maximum_casing_internal_pressure: 0 maximum_hhp: 1 maximum_pumping_capacity: 1.2 min_goal_pressure: 8700 packer_plug_pressure_rating: 0 surface_fluid_storage_capacity: 1 wellhead_pressure_rating: 0 WellViewPlugs: properties: id: type: integer format: int64 name: type: string options: type: object items: type: array example: dataset: plugs results: - _id: 5c9a92d834022a04c4acb6d3 timestamp: 1536912275 version: 1 provider: corva dataset: completion.data.plugs asset_id: 1 company_id: 1 data: type: FRAC PLUG make: HALLIBURTON model: FAS DRILL outside_diameter: 4.38 run_date: 8/28/19 12:35 top_depth: 12656 bottom_depth: 13853 number: 6 JwksKey: description: JWKS public key for JWT token verification properties: kid: type: string description: Key ID kty: type: string description: Key type (RSA) alg: type: string description: Algorithm (RS256) use: type: string description: Key usage (sig for signature) n: type: string description: Base64url-encoded RSA modulus e: type: string description: Base64url-encoded RSA exponent example: kid: corva-api-1731540000 kty: RSA alg: RS256 use: sig n: xGOr-H7A7RCQBzJvq9jKMjPqJT5AYo1oqP6LmcR2... e: AQAB JwksResponse: description: JWKS (JSON Web Key Set) containing public keys for verifying JWT tokens properties: keys: type: array items: $ref: '#/definitions/JwksKey' example: keys: - kid: corva-api-1731540000 kty: RSA alg: RS256 use: sig n: xGOr-H7A7RCQBzJvq9jKMjPqJT5AYo1oqP6LmcR2... e: AQAB MessageProducerPayload: properties: app_connection_id: type: integer asset_id: type: integer rerun_begins: type: integer data: type: array example: app_connection_id: 123445 asset_id: 123445 rerun_begins: 1 data: [] Notification: required: - id properties: id: type: integer format: int64 user_id: type: integer format: int64 trigger_id: type: integer format: int64 trigger_type: type: string message: type: string level: type: string acknowledged: type: boolean created_at: type: string format: date-time status: type: string trigger: type: object properties: oneOf: type: object properties: comment: $ref: '#/definitions/Comment' activity_post: $ref: '#/definitions/ActivityPost' NotificationPayload: properties: notification: type: object properties: message: type: string example: notification: message: Updated notification message UnreadCount: properties: count: type: integer format: int64 example: count: 12345 NotificationPolicy: properties: id: type: string type: type: string attributes: type: object required: - id - context - scope - enabled properties: id: type: integer format: int64 user_id: type: integer format: int64 description: Owning user; NULL for system policies such as the universal default context: type: string enum: - alerts scope: type: string enum: - default - company - user - pad - rig - frac_fleet - intervention_unit - well - alert_group - alert_definition - alert_group_and_pad - alert_group_and_rig - alert_group_and_frac_fleet - alert_group_and_intervention_unit - alert_group_and_well - alert_definition_and_pad - alert_definition_and_rig - alert_definition_and_frac_fleet - alert_definition_and_intervention_unit - alert_definition_and_well enabled: type: boolean snoozed_until: type: string format: date-time description: When set to a future time the policy is snoozed invalidated_at: type: string format: date-time description: Set when a scope target was deleted; NULL while active invalidation_reason: type: string created_at: type: string format: date-time updated_at: type: string format: date-time NotificationPolicyScopeInput: properties: id: type: integer format: int64 description: Present when updating an existing scope row scope_type: type: string enum: - User - Company - Pad - Rig - FracFleet - InterventionUnit - Well - AlertGroup - AlertDefinition scope_id: type: integer format: int64 _destroy: type: boolean description: Set true to remove this scope row NotificationPolicyFilterInput: properties: id: type: integer format: int64 description: Present when updating an existing filter row key: type: string values: type: array items: type: string _destroy: type: boolean description: Set true to remove this filter row NotificationPolicyThresholdInput: properties: id: type: integer format: int64 description: Present when updating an existing threshold row kind: type: string enum: - occurrences - duration value: type: integer _destroy: type: boolean description: Set true to remove this threshold row NotificationPolicyList: properties: data: type: array items: $ref: '#/definitions/NotificationPolicy' NotificationPolicySingle: properties: data: type: object $ref: '#/definitions/NotificationPolicy' NotificationPolicyPayload: required: - notification_policy properties: notification_policy: type: object required: - context - scope properties: context: type: string enum: - alerts scope: type: string enum: - default - company - user - pad - rig - frac_fleet - intervention_unit - well - alert_group - alert_definition - alert_group_and_pad - alert_group_and_rig - alert_group_and_frac_fleet - alert_group_and_intervention_unit - alert_group_and_well - alert_definition_and_pad - alert_definition_and_rig - alert_definition_and_frac_fleet - alert_definition_and_intervention_unit - alert_definition_and_well enabled: type: boolean snoozed_until: type: string format: date-time notification_type_ids: type: array items: type: integer format: int64 notification_policy_scopes_attributes: type: array items: $ref: '#/definitions/NotificationPolicyScopeInput' notification_policy_filters_attributes: type: array items: $ref: '#/definitions/NotificationPolicyFilterInput' notification_policy_thresholds_attributes: type: array items: $ref: '#/definitions/NotificationPolicyThresholdInput' SecurityPolicy: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 name: type: string identifier: type: string run_mode: type: string description: type: string frequency: type: integer format: int64 schema: type: json created_at: type: string format: date-time updated_at: type: string format: date-time example: id: 4 type: security_policy attributes: id: '4' name: MFA identifier: identity-verification description: Multi-Factor Authentication frequency: 0 schema: {} run_mode: event created_at: '2020-01-01T08:00:00.000Z' updated_at: '2020-01-01T13:00:00.000Z' SecurityPolicyList: properties: data: type: array items: $ref: '#/definitions/SecurityPolicy' CompanySecurityPolicy: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 enabled: type: boolean schema: type: json status: type: string description: Human-readable one-line summary of the policy, derived server-side by `Security::PolicyStatusFormatter`. Always "Off" when `enabled` is false. Returns "Misconfigured — please re-save" if the schema fails to format (missing or wrongly-typed required field, or a row still holding the SecurityPolicy field metadata). A `password-expiration-schedule` whose `start_date` is still in the future reports "Scheduled to start …". Otherwise an identifier-specific string such as "MFA required — email + SMS", "Sessions expire after 8 hours", or "Strong — 16+ chars, requires upper, lower, digit, symbol". example: MFA required — email + SMS last_checked_at: type: string format: date-time created_at: type: string format: date-time updated_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string security_policy: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string group: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 12345 type: company_security_policy attributes: id: 11 enabled: true schema: modes: - email - sms required: true status: MFA required — email + sms last_checked_at: '2020-01-01T08:00:00.000Z' created_at: '2022-01-01T08:00:00.000Z' updated_at: '2023-01-01T08:00:00.000Z' relationships: company: data: id: 999 type: company security_policy: data: id: 4 type: security_policy group: data: id: 90 type: group CompanySecurityPolicyList: properties: data: type: array items: $ref: '#/definitions/CompanySecurityPolicy' CompanySecurityPolicyCreatePayload: properties: company_security_policy: type: object properties: security_policy_id: type: integer group_id: type: boolean required: false schema: type: json enabled: type: boolean required: false example: company_security_policy: security_policy_id: 12 group_id: 44 schema: hello: world enabled: true CompanySecurityPolicyUpdatePayload: properties: company_security_policy: type: object properties: group_id: type: boolean required: false schema: type: json enabled: type: boolean required: false example: company_security_policy: group_id: 44 schema: hello: world enabled: true AuthenticationSchemaContextV2: properties: id: type: string type: type: string example: authentication_schema_context attributes: type: object properties: context_type: type: string enum: - Company - CompanyDomain - User description: Polymorphic context discriminator. `Company` rows apply company-wide, `CompanyDomain` rows match users whose email domain is on that domain, `User` rows are per-user overrides. context_id: type: integer format: int64 description: ID of the referenced Company, CompanyDomain, or User row. context_label: type: string description: Human-readable identifier for the context (Company.name / CompanyDomain.domain / User.email). Returns `"(unknown)"` if the underlying row was deleted out from under the context. provisioner: type: string description: Where group membership originates. `internal` = Corva-managed; `client` = derived from the IdP via the SSO broker. created_at: type: string format: date-time schema: type: object description: Inlined `AuthenticationSchema` details + per-caller ownership flags. Returned inline (not via a JSON:API relationship) so the FE has the ownership context without a follow-up `?include=` request. properties: id: type: integer format: int64 title: type: string example: Google Workspace provider: type: string example: google connection: type: string example: acme-google-workspace owner_company_id: type: integer format: int64 nullable: true description: Owning company id, or null for global / shared schemas. is_global: type: boolean description: True when `owner_company_id` is null. is_owned_by_current_company: type: boolean description: True when the schema is owned by the company being queried. AuthenticationSchemaContextV2List: properties: data: type: array items: $ref: '#/definitions/AuthenticationSchemaContextV2' meta: type: object properties: counts: type: object description: Per-context-type counts across the returned set. properties: company: type: integer format: int64 company_domain: type: integer format: int64 user: type: integer format: int64 Permission: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 ability: type: string resource_class: type: string resource_id: type: integer format: int64 resource_name: type: string conditions: type: json created_at: type: string format: date-time updated_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string owner: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 12345 type: permission attributes: id: '12345' ability: read resource_class: User resource_id: 123 resource_name: Johny conditions: null created_at: '2020-01-01T08:00:00.000Z' updated_at: '2020-01-01T13:00:00.000Z' relationships: company: id: '1' type: company owner: id: '123' type: user PermissionGroup: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 resource_class: type: string resource_name: type: string friendly_name: type: string key: type: string resource_id: type: integer format: int64 relationships: type: object properties: permissions: type: array items: properties: data: type: object properties: id: type: integer format: int64 type: type: string owner: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 12345 type: permission_group attributes: id: 12345 resource_class: User resource_name: User friendly_name: User key: all-users resource_id: 123 relationships: permissions: - data: id: 999 type: permission owner: id: '123' type: user PermissionGroupList: properties: data: type: array items: $ref: '#/definitions/PermissionGroup' PermissionOnGroup: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 ability: type: string resource_class: type: string resource_id: type: integer format: int64 conditions: type: json created_at: type: string format: date-time updated_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string owner: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 12345 type: permission attributes: id: '12345' ability: read resource_class: User resource_id: 123 conditions: null created_at: '2020-01-01T08:00:00.000Z' updated_at: '2020-01-01T13:00:00.000Z' relationships: company: id: '1' type: company owner: id: '123' type: group PermissionInList: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 ability: type: string resource_class: type: string resource_id: type: integer format: int64 conditions: type: json relationships: type: object example: id: 12345 type: permission attributes: id: '12345' ability: read resource_class: User resource_id: 123 conditions: null relationships: {} PermissionPayload: properties: permission: type: object properties: ability: type: string resource_class: type: string resource_id: type: integer company_id: type: integer example: permission: ability: read resource_class: User resource_id: 123 company_id: 1 BulkPermissionPayload: properties: permission: type: object properties: abilities: type: array resource_class: type: string key: type: string resource_id: type: integer company_id: type: integer example: permission: abilities: - read - update - create - destroy resource_class: User key: all-company-users resource_id: 123 company_id: 1 PermissionList: properties: data: type: array items: $ref: '#/definitions/PermissionInList' Picklist: required: - id - name properties: id: type: integer format: int64 name: type: string options: type: object items: type: array example: id: 24 name: my_picklist options: name: A single option value: The optional value items: - nested: data more: additional data PicklistPayload: properties: name: type: string require_admin: type: boolean company_id: type: integer format: int64 options: type: object example: name: new_picklist require_admin: true company_id: 1 options: some: option PicklistUpdatePayload: properties: name: type: string require_admin: type: boolean options: type: object example: name: new_picklist require_admin: true options: some: option PicklistItem: required: - id - name properties: id: type: integer format: int64 picklist_id: type: integer format: int64 name: type: string order: type: integer secure: type: object metadata: type: object example: id: 24 name: My Picklist Item order: 1 metadata: some: option secure: {} picklist_id: 1 PicklistItemPayload: properties: name: type: string order: type: integer format: int64 secure: type: object metadata: type: object example: name: New Picklist Item order: 1 secure: {} metadata: some: option Task: required: - id - type properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: string format: uuid state: type: string fail_reason: type: string asset_id: type: integer format: int64 company_id: type: integer format: int64 app_id: type: integer format: int64 document_bucket: type: string properties: type: object payload: type: object example: id: e42776dd-2b13-48ad-9c89-620eb7808956 name: My Task options: name: A single option value: The optional value type: task attributes: id: e42776dd-2b13-48ad-9c89-620eb7808956 state: running fail_reason: null asset_id: 3208 company_id: 2930 app_id: 596 document_bucket: corva-files properties: attribute: value payload: {} TaskConfiguration: properties: app_key: type: string provider: type: string asset_id: type: integer properties: type: object payload: type: object app_version: type: integer example: provider: corva app_key: drilling-roadmap asset_id: 2342 properties: operation: scoring payload: offsets: - 248 - 93434 factor: 56 app_version: 2 TaskPayload: properties: fail_reason: type: string payload: type: object example: fail_reason: null payload: offsets: - 248 - 93434 factor: 56 TaskShow: properties: id: type: integer format: uuid state: type: string fail_reason: type: string asset_id: type: integer format: int64 company_id: type: integer format: int64 app_id: type: integer format: int64 document_bucket: type: string properties: type: object payload: type: object example: id: e42776dd-2b13-48ad-9c89-620eb7808956 state: running fail_reason: null asset_id: 3208 company_id: 3 app_id: 596 document_bucket: corva-files properties: attribute: value payload: {} TaskSchedule: properties: id: type: string description: JSON:API resource ID type: type: string enum: - task_schedule attributes: type: object required: - id - name - cron_expression - timezone - properties - status - owner_type - owner_id - company_id - app_id properties: id: type: integer format: int64 name: type: string description: Human-readable schedule name; maximum 255 characters description: type: string cron_expression: type: string description: Five-field cron expression interpreted in timezone; executions must be at least 60 minutes apart by default timezone: type: string description: IANA timezone identifier, for example America/Chicago properties: type: object description: Free-form task configuration passed to the task app; limited by server payload-size configuration status: type: string enum: - active - paused - disabled owner_type: type: string enum: - User - Company owner_id: type: integer format: int64 company_id: type: integer format: int64 app_id: type: integer format: int64 description: Task or stream-task app invoked by this schedule asset_id: type: integer format: int64 nullable: true description: Optional asset context. Deleting the asset also deletes its schedules. created_by_id: type: integer format: int64 next_run_at: type: string format: date-time description: Next occurrence in UTC, calculated from cron_expression and timezone last_run_at: type: string format: date-time last_run_status: type: string enum: - running - succeeded - failed last_error: type: string daily_run_count: type: integer description: Per-schedule execution telemetry; aggregate owner quota is enforced from the occurrence ledger total_runs: type: integer total_failures: type: integer created_at: type: string format: date-time updated_at: type: string format: date-time example: id: '12345' type: task_schedule attributes: id: 12345 name: Tuesday morning rig reports description: Generate and email reports for rigs A, B, and C cron_expression: 0 6 * * 2 timezone: America/Chicago properties: rig_ids: - 101 - 102 - 103 report: daily_morning status: active owner_type: User owner_id: 501 company_id: 42 app_id: 700 asset_id: null created_by_id: 501 next_run_at: '2026-08-18T11:00:00.000Z' last_run_at: null last_run_status: null last_error: null daily_run_count: 0 total_runs: 0 total_failures: 0 created_at: '2026-08-11T12:00:00.000Z' updated_at: '2026-08-11T12:00:00.000Z' TaskScheduleList: properties: data: type: array items: $ref: '#/definitions/TaskSchedule' TaskScheduleSingle: properties: data: type: object $ref: '#/definitions/TaskSchedule' TaskScheduleCreatePayload: required: - task_schedule properties: task_schedule: type: object required: - name - cron_expression - timezone - app_id - properties properties: name: type: string description: Required; maximum 255 characters description: type: string cron_expression: type: string description: Required five-field cron expression; minimum interval is 60 minutes by default timezone: type: string description: Required IANA timezone used to interpret cron_expression, for example America/Chicago properties: type: object description: Required non-empty task configuration passed to the task app status: type: string enum: - active - paused - disabled default: active owner_type: type: string enum: - User - Company description: Use with owner_id; omit both fields to create a schedule owned by the current user owner_id: type: integer format: int64 description: Use with owner_type; company administrators may create schedules for authorized company users or companies. The schedule company is derived from its owner. app_id: type: integer format: int64 description: Required task or stream-task app with settings.task_scheduling_enabled set to JSON boolean true that safely handles occurrence idempotency keys; immutable after creation asset_id: type: integer format: int64 nullable: true description: Optional asset context belonging to the schedule company; omit for company-wide execution TaskScheduleUpdatePayload: description: Partial update. app_id, company_id, created_by_id, owner_type, and owner_id are immutable; supplying one returns 400. required: - task_schedule properties: task_schedule: type: object properties: name: type: string description: Maximum 255 characters description: type: string cron_expression: type: string description: Five-field cron expression; minimum interval is 60 minutes by default timezone: type: string description: IANA timezone used to interpret cron_expression properties: type: object description: Free-form task configuration; replaces the stored object status: type: string enum: - active - paused - disabled asset_id: type: integer format: int64 nullable: true description: Optional asset context belonging to the schedule company; explicitly set null to clear asset scope and make the schedule company-wide TaskScheduleDeleted: required: - status properties: status: type: string enum: - deleted TaskScheduleBadRequest: required: - code - message properties: code: type: integer format: int32 enum: - 400 message: type: string AuthenticationResponse: description: 'Authentication response containing JWT tokens. By default returns HMAC (HS256) tokens. To receive JWKS (RS256) tokens, include "X-Token-Format: jwks" header or "token_format: jwks" in auth params.' properties: jwt: type: string auth_key: type: string refresh_token: type: string user_id: type: integer format: int64 intercom_hash: type: string example: jwt: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoyMzUwLCJleHAiOjE1NzkxOTgyOTksImNvbXBhbnlfaWQiOjI3MjksImltcGVyc29uYXRvcl9pZCI6bnVsbH0.nWitzFwOW5FfXelRrkcTz90u1QUtGNXcJQc2lkcW1_k auth_key: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoyMzUwLCJleHAiOjE1NzkxOTgyOTksImNvbXBhbnlfaWQiOjI3MjksImltcGVyc29uYXRvcl9pZCI6bnVsbH0.nWitzFwOW5FfXelRrkcTz90u1QUtGNXcJQc2lkcW1_k refresh_token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoyMzUwLCJleHAiOjE1NzkxOTgyOTksImNvbXBhbnlfaWQiOjI3MjksImltcGVyc29uYXRvcl9pZCI6bnVsbH0.nWitzFwOW5FfXelRrkcTz90u1QUtGNXcJQc2lkcW1_k user_id: 1042 intercom_hash: 2128ecf9724b23d96da879ff3febc393694c0b43f6f204a6997317c853f593cd EmailPasswordAuthentication: properties: email: type: string password: type: string example: auth: email: me@mycompany.com password: ThisIsMyP@55w0rd! EmailPasswordMFAAuthentication: properties: email: type: string password: type: string verification_mode: type: string enum: - email - sms - authenticator verification_code: type: string example: auth: email: me@mycompany.com password: ThisIsMyP@55w0rd! verification_mode: email verification_code: '123456' RefreshTokenAuthentication: properties: email: type: string password: type: string example: auth: refresh_token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoyMzUwLCJleHAiOjE1NzkxOTgyOTksImNvbXBhbnlfaWQiOjI3MjksImltcGVyc29uYXRvcl9pZCI6bnVsbH0.nWitzFwOW5FfXelRrkcTz90u1QUtGNXcJQc2lkcW1_k Auth0Authentication: properties: token: type: string nonce: type: string example: auth: token: auth0-token-goes-here nonce: auth0-nonce-goes-here AuthenticationSchema: properties: connection: type: string title: type: string provider: type: string example: connection: connection-abc title: Connection to ABC provider: google V1UserMinimal: properties: id: type: integer format: int64 first_name: type: string last_name: type: string email: type: string title: type: string role: type: string profile_photo: type: string current_segment: type: string created_at: type: string format: date-time example: id: 1072 first_name: Derek last_name: Smith email: email7@corva.ai title: Drilling Engineer role: user profile_photo: aws_s3_file_path current_segment: drilling created_at: '2020-02-04T12:48:59.593Z' UserMinimal: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 first_name: type: string last_name: type: string email: type: string title: type: string role: type: string profile_photo: type: string terms_acceptance_at: type: string format: date-time messaging_id: type: string company_id: type: integer format: int64 mobile: type: string last_sign_in_at: type: string format: date-time current_segment: type: string created_at: type: string format: date-time relationships: type: object properties: groups: type: object properties: data: type: array properties: id: type: integer format: int64 type: type: string company: type: object properties: data: type: array properties: id: type: integer format: int64 type: type: string included: type: array items: properties: id: type: integer type: type: string attributes: type: object properties: id: type: integer name: type: string example: id: 2499 type: user attributes: first_name: Derek last_name: Smith email: email7@corva.ai title: Drilling Engineer role: User role profile_photo: aws_s3_file_path terms_acceptance_at: '2020-02-04T12:48:59.593Z' messaging_id: test_13684 company_id: 123 mobile: Mobile string last_sign_in_at: '2020-02-04T12:48:59.593Z' current_segment: drilling created_at: '2020-02-04T12:48:59.593Z' relationships: groups: data: - id: 123 type: group - id: 124 type: group company: data: id: 123 type: company included: - id: 123 type: group attributes: id: 123 name: Group name - id: 123 type: company attributes: id: 123 name: Company name User: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 company_id: type: integer format: int64 first_name: type: string last_name: type: string email: type: string mobile: type: string created_at: type: string terms_acceptance_at: type: string profile_photo: type: string recently_viewed_asset_ids: type: array company: type: object unit_system: type: object custom_unit_system: type: object role: type: string title: type: string group: type: array favourite_aset_id: type: integer format: int64 current_segment: type: string theme: type: string messaging_id: type: string restricted_assets: type: array resource: type: array settings: type: object last_sign_in_at: type: string intercom_user_hash: type: string locked_access: type: boolean unit_ids: type: array relationships: type: object properties: profile_groups: type: object properties: data: type: array preference: type: object properties: data: type: object groups: type: object properties: data: type: array example: id: 2499 type: user attributes: company_id: 12 first_name: Derek last_name: Smith email: email7@corva.ai mobile: '+1555555555' created_at: '2021-02-19T11:53:42.626Z' terms_acceptance_at: '2021-02-19T11:53:42.626Z' profile_photo: aws_s3_file_path recently_viewed_asset_ids: [] company: id: 12 name: Big Data Energy unit_system: yp: hsf oil: bbl area: ft2 mass: lb force: klbf speed: ft/h length: ft system: imperial torque: ft-klbf volume: gal density: ppg pressure: psi shortLength: in temperature: F massPerLength: lb-ft volumeFlowRate: gal/min custom_unit_system: mass: kg distance: m role: user title: Drilling Engineer group: - Field - Office - RTOC favorite_asset_id: 2 current_segment: drilling theme: dark messaging_id: test_123 restricted_assets: [] resource: [] settings: favorites: {} sms_blacklisted: false restricted_assets: [] restricted_programs: [] participates_in_beta_apps: false last_sign_in_at: '2021-02-19T11:53:42.626Z' intercom_user_hash: ef587b24d6c758c48fab6223ddb7388324a46f3bf01892aac8fe1295c3722cb1 locked_access: false unit_ids: [] relationships: profile_groups: data: - id: 123 type: profile_group - id: 124 type: profile_group preference: data: id: 123 type: preference groups: data: - id: 123 type: group - id: 124 type: group UserPayloadCreate: properties: user: type: object properties: company_id: type: integer password: type: string password_confirmation: type: string user_id: type: integer email: type: string first_name: type: string last_name: type: string title: type: string profile_photo: type: string group: type: array items: type: string group_ids: type: array items: type: integer current_segment: type: string role: type: string favorite_asset_id: type: integer resource: type: array items: type: string theme: type: string mobile: type: string unit_system: type: object custom_unit_system: type: object unit_ids: type: array items: type: integer example: user: company_id: 1 password: Password password_confirmation: Password email: john.doe@example.com group_ids: - 13 - 445 - 890 unit_ids: - 134 - 445 - 850 first_name: John last_name: Doe title: Title role: user theme: dark mobile: '+1555555555' resource: - Conventional group: - Field unit_system: yp: hsf oil: bbl area: ft2 mass: lb force: klbf speed: ft/h length: ft system: imperial torque: ft-klbf volume: gal density: ppg pressure: psi shortLength: in temperature: F massPerLength: lb-ft volumeFlowRate: gal/min custom_unit_system: mass: kg distance: m UserPayloadUpdate: properties: user: type: object properties: user_id: type: integer email: type: string first_name: type: string last_name: type: string title: type: string profile_photo: type: string group: type: array items: type: string group_ids: type: array items: type: integer current_segment: type: string role: type: string favorite_asset_id: type: integer resource: type: array items: type: string theme: type: string mobile: type: string unit_system: type: object custom_unit_system: type: object example: user: email: john.doe@example.com first_name: John last_name: Doe title: Title group_ids: - 13 - 445 - 890 role: user theme: dark mobile: '+1555555555' resource: - Conventional unit_system: yp: hsf oil: bbl area: ft2 mass: lb force: klbf speed: ft/h length: ft system: imperial torque: ft-klbf volume: gal density: ppg pressure: psi shortLength: in temperature: F massPerLength: lb-ft volumeFlowRate: gal/min custom_unit_system: mass: kg distance: m UserList: properties: data: type: array items: $ref: '#/definitions/UserMinimal' UserStreaksList: properties: data: type: array items: properties: id: type: string format: int64 type: type: string attributes: type: object properties: id: type: string email: type: integer streak: type: object properties: current_streak: type: integer longest_streak: type: integer last_active_on: type: date example: data: - id: '1' type: user attributes: id: 1 email: example@email.com streak: current_streak: 1 longest_streak: 10 last_active_on: '2025-04-25' UserSettings: properties: favorites: type: object sms_blacklisted: type: boolean restricted_assets: type: array restricted_programs: type: array participates_in_beta_apps: type: boolean example: favorites: {} sms_blacklisted: false restricted_assets: [] restricted_programs: [] participates_in_beta_apps: false UserSettingsPayload: properties: custom_property: type: string custom_property2: type: object participates_in_beta_apps: type: boolean example: custom_property: Value custom_property2: key: value participates_in_beta_apps: true UserSettingsUpdated: properties: favorites: type: object sms_blacklisted: type: boolean restricted_assets: type: array restricted_programs: type: array participates_in_beta_apps: type: boolean custom_property: type: string custom_property2: type: object example: favorites: {} sms_blacklisted: false restricted_assets: [] restricted_programs: [] participates_in_beta_apps: true custom_property: Value custom_property2: key: value IdentityVerifier: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: mode: type: string settings: type: object example: id: 1 type: identity_verifier attributes: mode: email settings: key: value IdentityVerifierList: properties: data: type: array items: $ref: '#/definitions/IdentityVerifier' ApiKey: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 name: type: string permissions: type: string status: type: string owner_id: type: integer format: int64 owner_type: type: string requested_at: type: string format: date-time approved_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string requested_by: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string approved_by: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 12345 type: api_key attributes: id: '12345' name: ApiKey Name or key alias permissions: read status: active owner_id: 10000 owner_type: App requested_at: '2020-01-01T08:00:00.000Z' approved_at: '2020-01-01T13:00:00.000Z' relationships: company: id: '1' type: company requested_by: id: '123' type: user approved_by: id: '456' type: user ApiKeyPayload: properties: api_key: type: object properties: key: type: string permissions: type: string owner_id: type: integer format: int64 owner_type: type: string requested_by_id: type: integer format: int64 approved_by_id: type: integer format: int64 company_id: type: integer format: int64 example: api_key: name: ApiKey Name status: active key: some-auto-generated-key permissions: read owner_id: 12345 owner_type: App requested_by_id: 123 approved_by_id: 456 company_id: 456 ApiKeyList: properties: data: type: array items: $ref: '#/definitions/ApiKey' AppCategory: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: name: type: string identifier: type: string description: type: string category: type: string parent_category_id: type: integer position: type: integer segment: type: array example: id: 12345 type: app_category attributes: id: 12345 name: Category 1 identifier: scheduler description: App category desc category: ui_apps parent_category_id: 11111 position: 3 segment: - drilling - completions AppCategoryList: properties: data: type: array items: $ref: '#/definitions/AppCategory' AppCategoryLookUp: properties: identifier: type: string description: type: string AppCategoryLookUpList: properties: data: type: array items: $ref: '#/definitions/AppCategoryLookUp' AppType: properties: identifier: type: string name: type: string group: type: string doc_intro: type: string doc_description: type: string doc_content: type: string example: id: 12345 type: app_type attributes: id: 12345 identifier: scheduler name: Polling App Scheduler group: backend doc_intro: '[{''type'':''paragraph'',''children'':[{''text'':''These are the Backend apps...''}]}]' doc_description: '[{''type'':''paragraph'',''children'':[{''text'':''These are the Backend apps...''}]}]' doc_content: '[{''type'':''paragraph'',''children'':[{''text'':''These are the Backend apps...''}]}]' AppTypeList: properties: data: type: array items: $ref: '#/definitions/AppType' App: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 app_key: type: string name: type: string app_type: type: string visibility: type: string marketing_level: type: string segment: type: array source_type: type: array category: type: string task_name: type: string description: type: string summary: type: string featured: type: boolean website: type: string settings: type: object ui_settings: type: object icon: type: object position: type: integer subscribed: type: boolean package_type: type: string author_id: type: integer format: int64 author_first_name: type: string author_last_name: type: string author_email: type: string requested: type: boolean platform: type: string is_multirig: type: boolean is_help_center_active: type: boolean tracking_enabled: type: boolean log_type: type: string full_lambda_name: type: string app_packages_limit: type: integer temporary: type: boolean delete_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string datasets: type: array items: properties: data: type: object properties: id: type: integer format: int64 type: type: string packages: type: array items: properties: data: type: object properties: id: type: integer format: int64 type: type: string app_help_contents: type: array items: properties: data: type: object properties: id: type: integer format: int64 type: type: string app_media: type: array items: properties: data: type: object properties: id: type: integer format: int64 type: type: string dependent_apps: type: array items: properties: data: type: object properties: id: type: integer format: int64 type: type: string depends_on_apps: type: array items: properties: data: type: object properties: id: type: integer format: int64 type: type: string app_category: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string owners: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 12345 type: app attributes: id: 12345 app_key: custom_key_23 name: CustomApp1 app_type: custom visibility: public marketing_level: featured segment: - drilling - completion - intervention source_type: - frac - wireline category: analytics app task_name: task.custom description: CustomApp1 description summary: CustomApp1 summary featured: 'true' website: http://example.com package_type: archive platform: dev_center is_multirig: false ui_settings: initial_size: w: 4 h: 10 settings: setting1: foobar setting2: some_s3_link position: 1 subscribed: true requested: false author_id: 999 author_first_name: Derek author_last_name: Last author_email: dereklast@example.com is_help_center_active: true tracking_enabled: true log_type: depth full_lambda_name: environment_custom_key_23 app_packages_limit: 20 temporary: false delete_at: '2020-01-01T00:00:00.000Z' relationships: company: data: id: 299 type: company datasets: - data: id: 999 type: dataset packages: - data: id: 123 type: package app_help_contents: - data: id: 123 type: app_help_content app_media: - data: id: 123 type: app_media dependent_apps: - data: id: 123 type: app depends_on_apps: - data: id: 123 type: app owners: data: - id: 123 type: user CreateAppPayload: properties: app: type: object properties: app_key: type: string app_type: type: string scheduler_type: type: integer package_type: type: string name: type: string website: type: string description: type: string summary: type: string version: type: string category: type: string manager: type: string visibility: type: string marketing_level: type: string log_type: type: string segment: type: array source_type: type: array pricing: type: object settings: type: object icon: type: file dependent_app_ids: type: array depends_on_app_ids: type: array temporary: type: boolean delete_at: type: string format: date-time dataset_attributes: type: object properties: name: type: string data_type: type: string schema: type: object description: type: string example: app: id: 12345 app_key: custom_key_23 name: CustomApp1 app_type: custom scheduler_type: 1 package_type: archive visibility: public segment: - drilling - completion - intervention source_type: - frac - wireline category: analytics app description: CustomApp1 description summary: CustomApp1 summary website: http://example.com version: 13.4.4 manager: FracFleet log_type: time pricing: tier1: '12300' tier2: '900003' settings: setting1: foobar setting2: some_s3_link icon: icon.png dependent_app_ids: - 12345 - 12346 - 12347 depends_on_app_ids: - 12345 - 12346 - 12347 temporary: false delete_at: '2020-01-01T00:00:00.000Z' dataset_attributes: name: corva#app.dataset data_type: time schema: fields: - field1 - field2 description: Dataset test description UpdateAppPayload: properties: app: type: object properties: app_key: type: string app_type: type: string scheduler_type: type: integer package_type: type: string name: type: string website: type: string description: type: string summary: type: string version: type: string category: type: string manager: type: string visibility: type: string marketing_level: type: string segment: type: array source_type: type: array pricing: type: object settings: type: object dependent_app_ids: type: array depends_on_app_ids: type: array icon: type: file temporary: type: boolean delete_at: type: string format: date-time example: app: id: 12345 app_key: custom_key_23 name: CustomApp1 app_type: custom scheduler_type: 1 package_type: archive visibility: public segment: - drilling - completion - intervention source_type: - frac - wireline category: analytics app description: CustomApp1 description summary: CustomApp1 summary website: http://example.com version: 13.4.4 manager: FracFleet temporary: false delete_at: '2020-01-01T00:00:00.000Z' pricing: tier1: '12300' tier2: '900003' settings: setting1: foobar setting2: some_s3_link icon: icon.png dependent_app_ids: - 12345 - 12346 - 12347 depends_on_app_ids: - 12345 - 12346 - 12347 AppList: properties: data: type: array items: $ref: '#/definitions/App' Package: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 build: type: string label: type: string manifest: type: object package_json: type: object package_code_version: type: string notes: type: string notes_type: type: string status: type: string url: type: string version: type: integer review_status: type: string ui_settings: type: object package_review_id: type: integer created_at: type: string format: date-time updated_at: type: string format: date-time relationships: type: object properties: app: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 12345 type: app attributes: id: 12345 build: my-test-app-0.0.8 label: beta manifest: version: 1 settings: {} package_json: name: test-app version: 0.0.8 ui_settings: application: initial_size: w: 1 h: 1 package_code_version: 0.0.8 notes: Release notes for the package notes_type: slate status: published url: https://package.corva.ai/corva/app/my_test_app/8/app.js version: 8 review_status: pending package_review_id: 92568 created_at: '2020-01-01T00:00:00.000Z' updated_at: '2020-01-01T00:00:00.000Z' relationships: app: data: id: 299 type: app UpdatePackagePayload: properties: package: type: object properties: status: type: string build: type: string label: type: string notes: type: string notes_type: type: string example: package: status: ready build: my-app-0.0.10 label: beta notes: Release notes for the package notes_type: slate PackageList: properties: data: type: array items: $ref: '#/definitions/Package' Installation: properties: id: type: integer format: int64 type: type: string relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string app: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 12345 type: installation relationships: app: data: id: 299 type: app company: data: id: 999 type: company AppSecretParameterPayload: properties: key: type: string value: type: string example: key: MY_PRECIOUS_SECRET value: some value AppDataset: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 operations: type: array dataset_name: type: string dataset_provider: type: string data_type: type: string merge_strategy: type: string relationships: type: object properties: app: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string dataset: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 12345 type: app_dataset attributes: id: 12345 operations: - read - write dataset_name: corva#dataset.1 dataset_provider: corva data_type: time relationships: app: data: id: 12345 type: app dataset: data: id: 12345 type: dataset AppDatasetList: properties: data: type: array items: $ref: '#/definitions/AppDataset' AppDatasetPayload: properties: app_dataset: type: object properties: dataset_id: type: integer format: int64 operations: type: array items: type: string example: app_dataset: dataset_id: 12345 operations: - read - write AppHelpContent: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 title: type: string description: type: text position: type: integer status: type: string enum: - draft - published visibility: type: string enum: - public - company created_at: type: string format: date-time updated_at: type: string format: date-time attachment_metadata: type: array items: properties: file_name: type: string type: type: string uploaded_at: type: string format: date-time article_content: type: text relationships: type: object properties: app: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string author: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 123 type: app_help_content attributes: id: '123' title: Help Title description: Help description position: 1 status: published visibility: public created_at: '2020-01-01T08:00:00.000Z' updated_at: '2020-01-01T13:00:00.000Z' attachment_metadata: - file_name: example.mp4 type: video uploaded_at: '2020-01-01T13:00:00.000Z' article_content: Article text relationships: app: id: '1' type: app author: id: '2' type: user AppHelpContentPayload: properties: app_help_content: type: object properties: title: type: string description: type: text position: type: integer status: type: string enum: - draft - published visibility: type: string enum: - public - company app_id: type: integer author_id: type: integer attachment_metadata: type: array items: properties: file_name: type: string type: type: string article_content: type: text example: app_help_content: title: Help Title description: Help description position: 1 status: draft visibility: public app_id: 1 author_id: 2 attachment_metadata: - file_name: example.mp4 type: video article_content: Article text AppHelpContentList: properties: data: type: array items: $ref: '#/definitions/AppHelpContent' AppLogStream: properties: log_stream_name: type: string first_event_timestamp: type: integer format: int64 last_event_timestamp: type: integer format: int64 AppLogStreamList: properties: data: type: object properties: next_token: type: string log_streams: type: array items: $ref: '#/definitions/AppLogStream' AppLogStreamEvent: properties: message: type: string timestamp: type: integer format: int64 ingestion_time: type: integer format: int64 AppLogStreamEventList: properties: data: type: object properties: next_forward_token: type: string next_backward_token: type: string events: type: array items: $ref: '#/definitions/AppLogStreamEvent' AppLogFilterEvent: properties: log_stream_name: type: string message: type: string timestamp: type: integer format: int64 ingestion_time: type: integer format: int64 event_id: type: string AppLogFilterEventList: properties: data: type: object properties: next_token: type: string events: type: array items: $ref: '#/definitions/AppLogFilterEvent' AppTypePayload: properties: doc_intro: type: string doc_description: type: string doc_content: type: string AppSettingsTemplate: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 app_id: type: integer format: int64 company_id: type: integer format: int64 name: type: string settings: type: object metadata: type: object shared: type: boolean shared_with: type: array example: id: 12345 type: app_settings_template attributes: id: 12345 app_id: 12345 company_id: 12345 name: CustomTemplate1 settings: setting1: foobar setting2: some_s3_link metadata: key1: value1 key2: value2 shared: false shared_with: - 123 asset_id: 1 asset_type: Rig AppSettingsTemplateShare: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 relationships: type: object properties: app_settings_template: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string user: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 12345 type: app_settings_template_share attributes: id: 12345 relationships: app_settings_template: data: id: 299 type: app_settings_template user: data: id: 999 type: user AppSettingsTemplatePayload: properties: app_settings_template: type: object properties: name: type: string settings: type: object metadata: type: object example: app_settings_template: name: CustomTemplate1 settings: setting1: foobar setting2: some_s3_link metadata: key1: value1 key2: value2 AppSettingsTemplateList: properties: data: type: array items: $ref: '#/definitions/AppSettingsTemplate' AppSettingsTemplateShareList: properties: data: type: array items: $ref: '#/definitions/AppSettingsTemplateShare' PublishAppSettingsTemplatePayload: properties: data: type: object properties: name: type: string metadata: type: object asset_id: type: integer asset_type: type: string example: app_settings_template: name: CustomTemplate1 metadata: key1: value1 key2: value2 asset_id: 1 asset_type: Rig AppStreamTemplate: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 company_id: type: integer format: int64 name: type: string description: type: string segment: type: string source_type: type: string log_type: type: string data_source: type: string stream_mode: type: string template_key: type: string relationships: type: object properties: app_stream_template_apps: type: object properties: data: type: array items: properties: id: type: integer format: int64 type: type: string example: id: 12345 type: app_stream_template attributes: id: 12345 app_id: 12345 company_id: 12345 name: FracStreamTemplate1 segment: completion source_type: frac log_type: time data_sources: - witsml stream_mode: historical template_key: frac-stream-template-1 relationships: app_stream_template_apps: data: - id: 435 type: app_stream_template_app AppStreamTemplateApp: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 app_stream_template_id: type: integer format: int64 app_id: type: integer format: int64 key: type: string settings: type: object relationships: type: object properties: app_stream_template: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string app: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 12345 type: app_stream_template_app attributes: id: 12345 app_stream_template_id: 299 app_id: 999 key: corva.streamx-witsml-source settings: wellbore_log: CORVA_ESD relationships: app_stream_template: data: id: 299 type: app_stream_template app: data: id: 999 type: app AppStreamTemplateAppSummary: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 app_stream_template_id: type: integer format: int64 app_id: type: integer format: int64 key: type: string example: id: 12345 type: app_stream_template_app attributes: id: 12345 app_stream_template_id: 299 app_id: 999 key: corva.streamx-witsml-source AppStreamTemplatePayload: properties: app_stream_template: type: object properties: name: type: string description: type: string segment: type: string enum: - drilling - completion - intervention source_type: type: string enum: - drilling - drillout - frac - pumpdown - wireline log_type: type: string enum: - time - depth example: app_stream_template: name: CustomTemplate1 description: Description segment: drilling source_type: drilling log_type: time AppStreamTemplateAppPayload: properties: app_stream_template_app: type: object properties: name: type: string settings: type: object example: app_stream_template_app: key: some_key settings: setting1: foobar setting2: some_other_setting AppStreamTemplateShow: properties: data: type: object $ref: '#/definitions/AppStreamTemplate' included: type: array items: $ref: '#/definitions/AppStreamTemplateAppSummary' example: data: id: 12345 type: app_stream_template attributes: id: 12345 company_id: 12345 name: StreamX drilling time segment: drilling source_type: drilling log_type: time data_sources: - witsml stream_mode: live template_key: streamx-drilling-time-witsml relationships: app_stream_template_apps: data: - id: 435 type: app_stream_template_app included: - id: 435 type: app_stream_template_app attributes: id: 435 app_stream_template_id: 12345 app_id: 999 key: corva.streamx-witsml-source AppStreamTemplateList: properties: data: type: array items: $ref: '#/definitions/AppStreamTemplate' DatasetType: properties: identifier: type: string name: type: string doc_description: type: string example: id: 12345 type: dataset_type attributes: id: 12345 identifier: time name: Time doc_description: '[{''type'':''paragraph'',''children'':[{''text'':''These are the Backend apps...''}]}]' DatasetTypePayload: properties: doc_intro: type: string doc_description: type: string doc_content: type: string DatasetTypeList: properties: data: type: array items: $ref: '#/definitions/DatasetType' DocumentIndex: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 title: type: string slug: type: string parent_slug: type: string example: id: 12345 type: document attributes: id: 12345 title: Dc Document Title slug: dc-doc-01 parent_slug: dc-doc-parent Document: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 title: type: string slug: type: string parent_slug: type: string body: type: string sections: type: object properties: data: type: array items: $ref: '#/definitions/DocumentSection' example: id: 12345 type: document attributes: id: 12345 title: Dc Document Title slug: dc-doc-01 parent_slug: dc-doc-parent body: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sections: data: - id: 12345 body: Document Section body position: 1 DocumentPayload: properties: document: type: object properties: title: type: string slug: type: string parent_slug: type: string body: type: string example: document: title: Dc Document Title slug: dc-doc-01 parent_slug: dc-doc-parent body: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec DocumentList: properties: data: type: array items: $ref: '#/definitions/DocumentIndex' DocumentSection: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 body: type: string position: type: integer example: id: 12345 type: document_section attributes: id: 12345 body: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod position: 1 DocumentSectionPayload: properties: document_section: type: object properties: body: type: string example: document_section: body: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod DocumentSectionList: properties: data: type: array items: $ref: '#/definitions/DocumentSection' RigTemplateIndex: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 rig_id: type: integer format: int64 company_id: type: integer format: int64 settings: type: object created_by_id: type: integer format: int64 created_by_name: type: string last_edited_by_id: type: integer format: int64 last_updated_by_name: type: string edr_provider_id: type: integer format: int64 column_mapper_template_channel_id: type: integer format: int64 example: id: 12345 type: rig_template attributes: id: 12345 rig_id: 1 company_id: 100 settings: {} created_by_id: 100 created_by_name: John Doe (john.doe@example.com) last_edited_by_id: 100 last_updated_by_name: John Doe (john.doe@example.com) edr_provider_id: null column_mapper_template_channel_id: null RigTemplate: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 rig_id: type: integer format: int64 company_id: type: integer format: int64 settings: type: object created_at: type: string format: date-time updated_at: type: string format: date-time created_by_id: type: integer format: int64 created_by_name: type: string last_edited_by_id: type: integer format: int64 last_updated_by_name: type: string edr_provider_id: type: integer format: int64 column_mapper_template_channel_id: type: integer format: int64 rig_template_items: type: object properties: data: type: array items: $ref: '#/definitions/RigTemplateItem' relationships: type: object properties: created_by: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string last_edited_by: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 12345 type: rig_template attributes: id: 12345 rig_id: 1 company_id: 100 settings: {} created_at: '2025-12-17T10:00:00Z' updated_at: '2025-12-17T10:00:00Z' created_by_id: 100 created_by_name: John Doe (john.doe@example.com) last_edited_by_id: 100 last_updated_by_name: John Doe (john.doe@example.com) rig_template_items: data: [] relationships: created_by: data: id: 100 type: user last_edited_by: data: id: 100 type: user RigTemplatePayload: properties: rig_template: type: object properties: rig_id: type: integer format: int64 company_id: type: integer format: int64 edr_provider_id: type: integer format: int64 column_mapper_template_channel_id: type: integer format: int64 settings: type: object rig_template_items_attributes: type: array items: properties: id: type: integer format: int64 description: Required for updates, omit for new items rig_template_category_id: type: integer format: int64 data: type: object _destroy: type: boolean description: Set to true to delete the item (only for updates) example: rig_template: rig_id: 1 company_id: 100 settings: {} rig_template_items_attributes: - rig_template_category_id: 2 data: key: value RigTemplateList: properties: data: type: array items: $ref: '#/definitions/RigTemplateIndex' RigTemplateCategoryIndex: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 name: type: string settings: type: object schema: type: object example: id: 12345 type: rig_template_category attributes: id: 12345 name: Category Name settings: {} schema: {} RigTemplateCategory: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 name: type: string settings: type: object schema: type: object created_at: type: string format: date-time updated_at: type: string format: date-time example: id: 12345 type: rig_template_category attributes: id: 12345 name: Category Name settings: {} schema: {} created_at: '2025-12-17T10:00:00Z' updated_at: '2025-12-17T10:00:00Z' RigTemplateCategoryPayload: properties: rig_template_category: type: object properties: name: type: string settings: type: object schema: type: object example: rig_template_category: name: Category Name settings: {} schema: {} RigTemplateCategoryList: properties: data: type: array items: $ref: '#/definitions/RigTemplateCategoryIndex' RigTemplateItemIndex: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 rig_template_id: type: integer format: int64 rig_template_category_id: type: integer format: int64 parent_rig_template_item_id: type: integer format: int64 data: type: object items: type: array example: id: 12345 type: rig_template_item attributes: id: 12345 rig_template_id: 1 rig_template_category_id: 2 parent_rig_template_item_id: null data: {} items: [] RigTemplateItem: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 rig_template_id: type: integer format: int64 rig_template_category_id: type: integer format: int64 parent_rig_template_item_id: type: integer format: int64 data: type: object created_at: type: string format: date-time updated_at: type: string format: date-time items: type: array rig_template_category: type: object properties: data: $ref: '#/definitions/RigTemplateCategory' example: id: 12345 type: rig_template_item attributes: id: 12345 rig_template_id: 1 rig_template_category_id: 2 parent_rig_template_item_id: null data: key: value created_at: '2025-12-17T10:00:00Z' updated_at: '2025-12-17T10:00:00Z' items: [] rig_template_category: data: id: 2 type: rig_template_category attributes: id: 2 name: Category Name settings: key: value schema: key: value RigTemplateItemPayload: properties: rig_template_item: type: object properties: parent_rig_template_item_id: type: integer format: int64 data: type: object nested_rig_template_items_attributes: type: array items: properties: parent_rig_template_item_id: type: integer format: int64 data: type: object example: rig_template_item: parent_rig_template_item_id: null data: key: value nested_rig_template_items_attributes: - data: key: child_value RigTemplateItemList: properties: data: type: array items: $ref: '#/definitions/RigTemplateItemIndex' InterventionUnitTemplate: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 intervention_unit_id: type: integer format: int64 company_id: type: integer format: int64 settings: type: object created_by_id: type: integer format: int64 created_by_name: type: string last_edited_by_id: type: integer format: int64 last_updated_by_name: type: string created_at: type: string format: date-time updated_at: type: string format: date-time InterventionUnitTemplatePayload: properties: intervention_unit_template: type: object properties: intervention_unit_id: type: integer format: int64 company_id: type: integer format: int64 edr_provider_id: type: integer format: int64 column_mapper_template_channel_id: type: integer format: int64 settings: type: object intervention_unit_template_items_attributes: type: array items: properties: id: type: integer format: int64 intervention_unit_template_category_id: type: integer format: int64 data: type: object _destroy: type: boolean InterventionUnitTemplateList: properties: data: type: array items: $ref: '#/definitions/InterventionUnitTemplate' InterventionUnitTemplateCategory: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 name: type: string settings: type: object schema: type: object created_at: type: string format: date-time updated_at: type: string format: date-time InterventionUnitTemplateCategoryPayload: properties: intervention_unit_template_category: type: object properties: name: type: string settings: type: object schema: type: object InterventionUnitTemplateCategoryList: properties: data: type: array items: $ref: '#/definitions/InterventionUnitTemplateCategory' InterventionUnitTemplateItem: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 intervention_unit_template_id: type: integer format: int64 intervention_unit_template_category_id: type: integer format: int64 parent_intervention_unit_template_item_id: type: integer format: int64 data: type: object items: type: array created_at: type: string format: date-time updated_at: type: string format: date-time InterventionUnitTemplateItemPayload: properties: intervention_unit_template_item: type: object properties: intervention_unit_template_category_id: type: integer format: int64 parent_intervention_unit_template_item_id: type: integer format: int64 data: type: object nested_intervention_unit_template_items_attributes: type: array items: properties: id: type: integer format: int64 intervention_unit_template_category_id: type: integer format: int64 data: type: object _destroy: type: boolean InterventionUnitTemplateItemList: properties: data: type: array items: $ref: '#/definitions/InterventionUnitTemplateItem' Tier: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 name: type: string price: type: float features: type: object segment: type: string enum: - drilling - completion - intervention be_apps_count: type: integer format: int64 fe_apps_count: type: integer format: int64 created_at: type: string format: date-time updated_at: type: string format: date-time relationships: type: object properties: apps: type: object properties: data: type: array properties: id: type: integer format: int64 type: type: string example: id: 12345 type: tier attributes: id: 12345 name: Best Tier price: 19.95 segment: drilling features: alert_count: 10 asset_count: 5 user_count: 5 api_access: true data_quality: true mobile_apps: true sso: true wellview_integration: true be_apps_count: 2 fe_apps_count: 2 created_at: '2010-01-01T00:00:00.000Z' updated_at: '2010-01-01T00:00:00.000Z' relationships: apps: - id: '1' type: app TierPayload: properties: tier: type: object properties: name: type: string price: type: float segment: type: string enum: - drilling - completion - intervention features: type: object app_ids: type: array items: type: integer example: tier: name: Best Tier price: 19.95 segment: drilling features: alert_count: 10 asset_count: 5 user_count: 5 api_access: true data_quality: true mobile_apps: true sso: true wellview_integration: true app_ids: - 12345 - 40345 TierList: properties: data: type: array items: $ref: '#/definitions/Tier' ProductSubscription: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 price: type: float features: type: object company_id: type: integer format: int64 name: type: string segment: type: string enum: - drilling - completion - intervention status: type: string enum: - unapproved - active - cancelled - denied asset_type: type: string enum: - company - program - rig - frac_fleet - drillout_unit billing_period: type: string enum: - monthly - daily - annually billing_calc_method: type: string enum: - well_afe_day - well_afe_month - corva_active_day - corva_active_month billing_contact: type: string billing_email: type: string billing_phone: type: string account_manager: type: string provider_company_id: type: integer format: int64 new_subscription_version_id: type: integer format: int64 uuid: type: string activated_at: type: string format: date-time cancelled_at: type: string format: date-time created_at: type: string format: date-time updated_at: type: string format: date-time relationships: type: object properties: apps: type: object properties: data: type: array properties: id: type: integer format: int64 app_key: type: string app_type: type: string category: type: string name: type: string segment: type: string visibility: type: string assets: type: object properties: data: type: array properties: id: type: integer format: int64 asset_id: type: integer format: int64 old_asset_id: type: integer format: int64 asset_type: type: string asset_name: type: string company: type: object properties: data: type: array properties: name: type: string tiers: type: object properties: data: type: array properties: name: type: string example: id: 12345 type: product_subscription attributes: id: 12345 price: 19.95 features: alert_count: 10 asset_count: 5 user_count: 5 api_access: true data_quality: true mobile_apps: true sso: true wellview_integration: true name: Product Name segment: drilling status: active asset_type: company billing_period: monthly billing_calc_method: well_afe_day billing_contact: Billing contact billing_email: example@email.com billing_phone: +1-415 652 0000 account_manager: Manager name provider_company_id: 10001 company_id: 12345 new_subscription_version_id: 10002 uuid: a628bd6c-2c2c-479f-a38c-48cc47b360f1 activated_at: '2010-01-01T00:00:00.000Z' cancelled_at: '2010-01-02T00:00:00.000Z' created_at: '2010-01-01T00:00:00.000Z' updated_at: '2010-01-01T00:00:00.000Z' relationships: apps: - id: '1' type: app assets: - id: '3' type: product_subscription_asset tiers: - id: '1' type: tier ProductSubscriptionPayload: properties: product_subscription: type: object properties: company_id: type: integer format: int64 name: type: string segment: type: string enum: - drilling - completion - intervention asset_type: type: string enum: - company - program - rig - frac_fleet - drillout_unit billing_period: type: string enum: - monthly - daily - annually billing_calc_method: type: string enum: - well_afe_day - well_afe_month - corva_active_day - corva_active_month billing_contact: type: string billing_email: type: string billing_phone: type: string account_manager: type: string price: type: float features: type: object asset_ids: type: array items: type: integer app_ids: type: array items: type: integer tier_ids: type: array items: type: integer example: product_subscription: price: 19.95 features: alert_count: 10 asset_count: 5 user_count: 5 api_access: true data_quality: true mobile_apps: true sso: true wellview_integration: true company_id: 12345 name: Product Name segment: drilling asset_type: program billing_period: monthly billing_calc_method: well_afe_day billing_contact: Billing contact billing_email: example@email.com billing_phone: +1-415 652 0000 account_manager: Manager name asset_ids: - 4 app_ids: - 1 tier_ids: - 12345 - 12346 ProductSubscriptionUpdatePayload: properties: product_subscription: type: object properties: name: type: string asset_type: type: string enum: - company - program - rig - frac_fleet - drillout_unit billing_period: type: string enum: - monthly - daily - annually billing_calc_method: type: string enum: - well_afe_day - well_afe_month - corva_active_day - corva_active_month billing_contact: type: string billing_email: type: string billing_phone: type: string account_manager: type: string price: type: float features: type: object asset_ids: type: array items: type: integer apps: type: array items: type: integer tier_ids: type: array items: type: integer example: product_subscription: price: 19.95 features: alert_count: 10 asset_count: 5 user_count: 5 api_access: true data_quality: true mobile_apps: true sso: true wellview_integration: true name: Product Name asset_type: rig billing_period: monthly billing_calc_method: well_afe_day billing_contact: Billing contact billing_email: example@email.com billing_phone: +1-415 652 0000 account_manager: Manager name asset_ids: - 1 - 2 - 3 app_ids: - 1 - 2 - 3 tier_ids: - 12345 - 12346 ProductSubscriptionList: properties: data: type: array items: $ref: '#/definitions/ProductSubscription' PlatformSubscription: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 price: type: float features: type: object company_id: type: integer format: int64 name: type: string segment: type: string enum: - drilling - completion status: type: string enum: - unapproved - active - cancelled - denied asset_type: type: string enum: - company - program - rig - frac_fleet - drillout_unit billing_period: type: string enum: - monthly - daily - annually billing_calc_method: type: string enum: - well_afe_day - well_afe_month - corva_active_day - corva_active_month billing_contact: type: string billing_email: type: string billing_phone: type: string account_manager: type: string provider_company_id: type: integer format: int64 new_subscription_version_id: type: integer format: int64 uuid: type: string activated_at: type: string format: date-time cancelled_at: type: string format: date-time created_at: type: string format: date-time updated_at: type: string format: date-time relationships: type: object properties: apps: type: object properties: data: type: array properties: id: type: integer format: int64 app_key: type: string app_type: type: string category: type: string name: type: string segment: type: string visibility: type: string assets: type: object properties: data: type: array properties: id: type: integer format: int64 asset_id: type: integer format: int64 old_asset_id: type: integer format: int64 asset_type: type: string asset_name: type: string company: type: object properties: data: type: array properties: name: type: string tiers: type: object properties: data: type: array properties: name: type: string example: id: 12345 type: platform_subscription attributes: id: 12345 price: 19.95 features: alert_count: 10 asset_count: 5 user_count: 5 api_access: true data_quality: true mobile_apps: true sso: true wellview_integration: true name: Product Name segment: drilling status: active asset_type: company billing_period: monthly billing_calc_method: well_afe_day billing_contact: Billing contact billing_email: example@email.com billing_phone: +1-415 652 0000 account_manager: Manager name provider_company_id: 10001 company_id: 12345 new_subscription_version_id: 10002 uuid: a628bd6c-2c2c-479f-a38c-48cc47b360f1 activated_at: '2010-01-01T00:00:00.000Z' cancelled_at: '2010-01-02T00:00:00.000Z' created_at: '2010-01-01T00:00:00.000Z' updated_at: '2010-01-01T00:00:00.000Z' relationships: apps: - id: '1' type: app assets: - id: '3' type: product_subscription_asset tiers: - id: '1' type: tier PlatformSubscriptionPayload: properties: platform_subscription: type: object properties: company_id: type: integer format: int64 name: type: string segment: type: string enum: - drilling - completion - intervention asset_type: type: string enum: - company - program - rig - frac_fleet - drillout_unit billing_period: type: string enum: - monthly - daily - annually billing_calc_method: type: string enum: - well_afe_day - well_afe_month - corva_active_day - corva_active_month billing_contact: type: string billing_email: type: string billing_phone: type: string account_manager: type: string price: type: float features: type: object asset_ids: type: array items: type: integer app_ids: type: array items: type: integer tier_ids: type: array items: type: integer stream_asset_ids: type: array items: type: integer example: platform_subscription: price: 19.95 features: alert_count: 10 asset_count: 5 user_count: 5 api_access: true data_quality: true mobile_apps: true sso: true wellview_integration: true company_id: 12345 name: Product Name segment: drilling asset_type: program billing_period: monthly billing_calc_method: well_afe_day billing_contact: Billing contact billing_email: example@email.com billing_phone: +1-415 652 0000 account_manager: Manager name asset_ids: - 4 app_ids: - 1 tier_ids: - 12345 - 12346 stream_asset_ids: - 45678 - 67890 PlatformSubscriptionUpdatePayload: properties: platform_subscription: type: object properties: name: type: string asset_type: type: string enum: - company - program - rig - frac_fleet - drillout_unit billing_period: type: string enum: - monthly - daily - annually billing_calc_method: type: string enum: - well_afe_day - well_afe_month - corva_active_day - corva_active_month billing_contact: type: string billing_email: type: string billing_phone: type: string account_manager: type: string price: type: float features: type: object asset_ids: type: array items: type: integer apps: type: array items: type: integer tier_ids: type: array items: type: integer stream_asset_ids: type: array items: type: integer example: platform_subscription: price: 19.95 features: alert_count: 10 asset_count: 5 user_count: 5 api_access: true data_quality: true mobile_apps: true sso: true wellview_integration: true name: Product Name asset_type: rig billing_period: monthly billing_calc_method: well_afe_day billing_contact: Billing contact billing_email: example@email.com billing_phone: +1-415 652 0000 account_manager: Manager name asset_ids: - 1 - 2 - 3 app_ids: - 1 - 2 - 3 tier_ids: - 12345 - 12346 stream_asset_ids: - 34567 - 56789 PlatformSubscriptionList: properties: data: type: array items: $ref: '#/definitions/PlatformSubscription' ProvisioningSubscription: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 company_id: type: integer format: int64 name: type: string segment: type: string enum: - drilling - completion - intervention status: type: string enum: - unapproved - active - cancelled - denied asset_type: type: string enum: - company - program - rig - frac_fleet - drillout_unit provider_company_id: type: integer format: int64 new_subscription_version_id: type: integer format: int64 uuid: type: string activated_at: type: string format: date-time cancelled_at: type: string format: date-time created_at: type: string format: date-time updated_at: type: string format: date-time relationships: type: object properties: apps: type: object properties: data: type: array properties: id: type: integer format: int64 app_key: type: string app_type: type: string category: type: string name: type: string segment: type: string visibility: type: string assets: type: object properties: data: type: array properties: id: type: integer format: int64 asset_id: type: integer format: int64 old_asset_id: type: integer format: int64 asset_type: type: string asset_name: type: string company: type: object properties: data: type: array properties: name: type: string example: id: 12345 type: provisioning_subscription attributes: id: 12345 name: Product Name segment: drilling status: active asset_type: company provider_company_id: 10001 company_id: 12345 new_subscription_version_id: 10002 uuid: a628bd6c-2c2c-479f-a38c-48cc47b360f1 activated_at: '2010-01-01T00:00:00.000Z' cancelled_at: '2010-01-02T00:00:00.000Z' created_at: '2010-01-01T00:00:00.000Z' updated_at: '2010-01-01T00:00:00.000Z' relationships: apps: - id: '1' type: app assets: - id: '3' type: product_subscription_asset ProvisioningSubscriptionPayload: properties: provisioning_subscription: type: object properties: company_id: type: integer format: int64 name: type: string segment: type: string enum: - drilling - completion - intervention asset_type: type: string enum: - company - program - rig - frac_fleet - drillout_unit asset_ids: type: array items: type: integer app_ids: type: array items: type: integer stream_asset_ids: type: array items: type: integer example: provisioning_subscription: company_id: 12345 name: Product Name segment: drilling asset_type: company asset_ids: - 4 app_ids: - 1 stream_asset_ids: - 12345 - 23456 ProvisioningSubscriptionUpdatePayload: properties: provisioning_subscription: type: object properties: name: type: string asset_type: type: string enum: - company - program - rig - frac_fleet - drillout_unit asset_ids: type: array items: type: integer apps: type: array items: type: integer example: provisioning_subscription: name: Product Name asset_type: company asset_ids: - 1 - 2 - 3 app_ids: - 1 - 2 - 3 ProvisioningSubscriptionList: properties: data: type: array items: $ref: '#/definitions/ProvisioningSubscription' PurchaseSubscription: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 price: type: float company_id: type: integer format: int64 name: type: string segment: type: string enum: - drilling - completion status: type: string enum: - unapproved - active - cancelled - denied asset_type: type: string enum: - company - program - rig - frac_fleet - drillout_unit billing_period: type: string enum: - monthly - daily - annually billing_calc_method: type: string enum: - well_afe_day - well_afe_month - corva_active_day - corva_active_month billing_contact: type: string billing_email: type: string billing_phone: type: string account_manager: type: string provider_company_id: type: integer format: int64 new_subscription_version_id: type: integer format: int64 uuid: type: string activated_at: type: string format: date-time cancelled_at: type: string format: date-time created_at: type: string format: date-time updated_at: type: string format: date-time relationships: type: object properties: apps: type: object properties: data: type: array properties: id: type: integer format: int64 app_key: type: string app_type: type: string category: type: string name: type: string segment: type: string visibility: type: string assets: type: object properties: data: type: array properties: id: type: integer format: int64 asset_id: type: integer format: int64 old_asset_id: type: integer format: int64 asset_type: type: string asset_name: type: string company: type: object properties: data: type: array properties: name: type: string example: id: 12345 type: purchase_subscription attributes: id: 12345 price: 19.95 name: Product Name segment: drilling status: active asset_type: company billing_period: monthly billing_calc_method: well_afe_day billing_contact: Billing contact billing_email: example@email.com billing_phone: +1-415 652 0000 account_manager: Manager name provider_company_id: 10001 company_id: 12345 new_subscription_version_id: 10002 uuid: a628bd6c-2c2c-479f-a38c-48cc47b360f1 activated_at: '2010-01-01T00:00:00.000Z' cancelled_at: '2010-01-02T00:00:00.000Z' created_at: '2010-01-01T00:00:00.000Z' updated_at: '2010-01-01T00:00:00.000Z' relationships: apps: - id: '1' type: app assets: - id: '3' type: product_subscription_asset PurchaseSubscriptionUpdatePayload: properties: purchase_subscription: type: object properties: name: type: string asset_type: type: string enum: - company - program - rig - frac_fleet - drillout_unit billing_period: type: string enum: - monthly - daily - annually billing_calc_method: type: string enum: - well_afe_day - well_afe_month - corva_active_day - corva_active_month billing_contact: type: string billing_email: type: string billing_phone: type: string account_manager: type: string price: type: float asset_ids: type: array items: type: integer apps: type: array items: type: integer example: purchase_subscription: price: 19.95 name: Product Name asset_type: rig billing_period: monthly billing_calc_method: well_afe_day billing_contact: Billing contact billing_email: example@email.com billing_phone: +1-415 652 0000 account_manager: Manager name asset_ids: - 1 - 2 - 3 app_ids: - 1 - 2 - 3 PurchaseSubscriptionList: properties: data: type: array items: $ref: '#/definitions/PurchaseSubscription' SubscriptionFeature: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 title: type: string name: type: string value_type: type: string asset_type: type: string created_at: type: string format: date-time updated_at: type: string format: date-time example: id: 12345 type: subscription_feature attributes: id: 12345 title: API Access name: api_access value_type: boolean asset_type: program created_at: '2010-01-01T00:00:00.000Z' updated_at: '2010-01-01T00:00:00.000Z' SubscriptionFeatureList: properties: data: type: array items: $ref: '#/definitions/SubscriptionFeature' WellCache: properties: asset_id: type: integer format: int64 well_id: type: integer format: int64 company_id: type: integer format: int64 timestamp: type: integer last_active_at: type: integer location: type: object corva#wits: type: object corva#data-well-sections-phases: type: object corva#data-well-sections: type: object corva#data-drillstring: type: object corva#data-casing: type: object corva#data-mud: type: object corva#directional-accuracy: type: object corva#data-npt-events: type: object corva#data-operation-summaries: type: object corva#completion-wits: type: object corva#wireline-wits: type: object corva#completion-data-stages: type: object corva#completion-data-actual-stages: type: object corva#completion-data-npt-events: type: object corva#completion-data-operation-summaries: type: object corva#completion-data-plugs: type: object corva#completion-metrics: type: object corva#drillout-wits: type: object corva#drillout-data-mud: type: object corva#drillout-data-drillstring: type: object block_height: type: object closest_survey_to_bit: type: object corva#predictive-alerts-stuck-pipe: type: object asset: type: object rig: type: object pad: type: object program: type: object company: type: object frac_fleet: type: object drillout_unit: type: object alert: type: object app_annotation: type: object example: asset_id: 1072 well_id: 425 company_id: 12 timestamp: 1629177766 last_active_at: 1629177762 location: type: Point coordinates: - 45 - 45 corva#wits: timestamp: 1629177766 data: state: Tripping In hole_depth: 5800 bit_depth: 3400 corva#data-well-sections-phases: data: {} corva#data-well-sections: data: {} corva#data-drillstring: timestamp: 1629174366 data: id: 1 components: - family: '' length: 1 material: '' stabilizer: '' bit_type: '' setting_timestamp: 1629177366 corva#data-casing: timestamp: 1629137766 data: outer_diameter: 2 inner_diameter: 1 setting_timestamp: 1629147366 corva#data-mud: data: mud_type: '' mud_density: 0.22 corva#directional-accuracy: data: points: [] horizontal_plane: distance: '' ahead: '' right: '' minimum_distance_plane: distance: '' high: '' right: '' vertical_plane: distance: '' below: '' right: '' corva#data-npt-events: data: {} corva#data-operation-summaries: data: {} corva#completion-wits: timestamp: 1629147366 stage_number: 3 data: state: Out of Hole wellhead_pressure: 5000.5 slurry_flow_rate_in: 45.2 total_proppant_concentration: 2.5 total_friction_reducer: 1.2 total_proppant_mass: 50000 total_clean_volume_in: 12000 corva#wireline-wits: timestamp: 1629147366 stage_number: 3 data: state: Out of Hole wellhead_pressure: 5000.5 slurry_flow_rate_in: 45.2 total_proppant_concentration: 2.5 total_friction_reducer: 1.2 total_proppant_mass: 50000 total_clean_volume_in: 12000 corva#completion-data-stages: data: stage_number: 3 corva#completion-data-actual-stages: data: proppants: [] fluids: [] corva#completion-data-npt-events: data: type: '' start_time: 1234345 end_time: 1234567 corva#completion-data-operation-summaries: data: date_time: 12345678 summary: '' corva#completion-data-plugs: - number: 1 bottom_depth: 10030 - number: 2 bottom_depth: 10092 corva#completion-metrics: timestamp: 12345678 data: type: day year: 2021 day: 21 month: 10 metrics: [] corva#drillout-wits: data: entry_at: 12345678 bit_depth: 9029 hole_depth: 9030 state: In Slips corva#drillout-data-mud: data: date: 1628522214 viscosity: {} mud_density: 8.4 mud_type: Water-base setting_timestamp: 1628523300 corva#drillout-data-drillstring: timestamp: 1628530250 data: id: 1 components: - family: '' length: 1 material: '' stabilizer: '' bit_type: '' setting_timestamp: 1628539826 block_height: min: 100.5 max: 500.2 current: 350.8 closest_survey_to_bit: station: measured_depth: 1000 inclination: 45.5 azimuth: 90.2 tvd: 995.5 northing: 10.5 easting: 20.3 dls: 2.5 vertical_section: 15.2 corva#predictive-alerts-stuck-pipe: wellbore_health: stuckpipe: result: 0.150134 asset: name: Well X target_formation: '' string_design: 4 state: completed stats: drilling: start: 1234567 end: 12345678 total_cost: 1234 total_npt: 1234 completions: start: 1234567 end: 12345678 frac_total_minutes: 1234 wireline_total_minutes: 1234 frac_minutes_last_24h: 345 wireline_minutes_last_24h: 567 rig: id: 1234 name: Rig X rig_classification: floating floating_vessel_subtype: semi_submersible platform_rig_type: fixed_platform active_well: id: 425 status: active pad: id: 1234 name: Pad X program: id: 1234 name: Program X company: id: 1234 name: Company X frac_fleet: id: 1234 name: Frac Fleet X drillout_unit: id: 123 name: Drillout Unit X alert: id: 123 alert_at: 12345678 decision_path: '' alert_definition: id: 123 level: '' app_annotation: id: 123 context: app_annotation: body: '' created_at: 12345678 user: id: 123 first_name: John last_name: Doe profile_photo: '' WellCacheList: properties: data: type: array items: $ref: '#/definitions/WellCache' BlacklistedDataset: properties: id: type: integer format: int64 type: type: string relationships: type: object properties: dataset: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string group: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string included: type: array items: properties: oneOf: type: object properties: id: type: string type: type: string attributes: properties: id: type: integer format: int64 name: type: string secondOf: type: object properties: id: type: string type: type: string attributes: properties: id: type: integer format: int64 name: type: string example: id: 14513 type: blacklisted_dataset relationships: dataset: data: id: 111 type: dataset group: data: id: 222 type: group included: - id: '111' type: dataset attributes: id: 111 name: provider_1#dataset.1 relationships: {} - id: '222' type: group attributes: id: 222 name: user relationships: {} CreateBlacklistedDataset: properties: blacklisted_dataset: type: object properties: dataset_id: type: integer format: int64 example: blacklisted_dataset: dataset_id: 12389 BulkCreateBlacklistedDataset: properties: blacklisted_dataset: type: object properties: dataset_ids: type: array items: type: integer example: blacklisted_dataset: dataset_ids: - 12389 - 10667 - 99778 AppMetric: properties: ts: type: integer value: type: float example: ts: 1638462480 value: 1.0 AppMetricList: properties: data: type: object items: $ref: '#/definitions/AppMetric' period: type: integer available_from: type: integer example: data: ts: 1638462480 value: 1.0 period: 120 available_from: 1643116200 AppMetricsList: items: properties: app_id: type: integer app_name: type: string data: type: object items: $ref: '#/definitions/AppMetric' period: type: integer available_from: type: integer example: app_id: 111 app_name: App Example name data: - ts: 1638462480 value: 1.0 period: 600 available_from: 1602305040 AppMetricError: properties: errors: type: object example: errors: - Some error occurred AppAssetStream: properties: id: type: integer format: int64 description: App stream ID name: type: string description: App stream name status: type: string description: App stream status statuses: type: object description: App stream status details properties: status: type: string description: Stream status visibility: type: string description: Stream visibility (e.g. visible, deleted) app_version: type: string description: App version from AppConnection on stream (Package build) nullable: true AppAssetList: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 name: type: string status: type: string last_active_at: type: string format: date-time company_name: type: string description: Company name of the asset rig_name: type: string pad: type: object properties: id: type: integer format: int64 name: type: string frac_fleet: type: object properties: id: type: integer format: int64 name: type: string streams: type: array description: Related app streams (excluding deleted), with id, name, statuses and app_version items: $ref: '#/definitions/AppAssetStream' example: id: 12345 type: app_asset attributes: id: 12345 name: Well status: active last_active_at: '2021-10-27T17:05:32.860Z' company_name: Corva Drilling Inc. rig_name: Rig pad: id: 111 name: Pad name frac_fleet: id: 111 name: FracFleet name streams: - id: 456 name: App Stream Well status: active statuses: status: active visibility: visible app_version: abc123 PackageReview: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 status: type: string enum: - pending - approved - rejected reviewer_email: type: string package_id: type: integer format: int64 app_name: type: string app_version: type: string app_id: type: integer segment: type: array app_icon: type: object properties: id: type: integer format: int64 app_id: type: integer format: int64 filename: type: string file_type: type: string media_type: type: string s3_path: type: string url: type: string position: type: integer company_id: type: integer format: int64 company_name: type: string package_notes: type: string app_visibility: type: string package_label: type: string created_at: type: string format: date-time updated_at: type: string format: date-time example: id: 12345 type: package_review attributes: id: 12345 status: approved reviewer_email: example@email.com package_id: 100 app_name: App app_version: 0.0.1 app_id: 235 segment: - completion company_id: 111 company_name: Company app_visibility: public package_label: stable created_at: '2010-01-01T00:00:00.000Z' updated_at: '2010-01-01T00:00:00.000Z' PackageReviewCreatePayload: properties: package_review: type: object properties: package_id: type: integer format: int64 example: package_review: package_id: 10001 PackageReviewUpdatePayload: properties: package_review: type: object properties: status: type: string enum: - approved - rejected example: package_review: status: approved PackageReviewList: properties: data: type: array items: $ref: '#/definitions/PackageReview' AppPurchase: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 status: type: string purchased_by_id: type: integer format: int64 purchased_by_name: type: string denied_at: type: string format: date-time approved_at: type: string format: date-time deny_reason: type: string included: type: array items: $ref: '#/definitions/PurchaseSubscription' example: id: 12345 type: app_purchase attributes: id: 12345 status: - pending - approved - denied purchased_by_id: 111 purchased_by_name: Derek denied_at: '2021-10-27T17:05:32.860Z' approved_at: '2021-10-31T17:05:32.860Z' deny_reason: Some comment relationships: purchase_subscriptions: data: - id: 15124 type: purchase_subscription AppPurchaseList: properties: data: type: array items: $ref: '#/definitions/AppPurchase' PurchaseSubscriptionPayload: properties: name: type: string segment: type: string enum: - drilling - completion asset_type: type: string enum: - company - program - rig - frac_fleet - drillout_unit billing_period: type: string enum: - monthly - daily - annually billing_calc_method: type: string enum: - well_afe_day - well_afe_month - corva_active_day - corva_active_month billing_contact: type: string billing_email: type: string billing_phone: type: string account_manager: type: string price: type: float asset_ids: type: array items: type: integer app_ids: type: array items: type: integer example: price: 19.95 name: Product Name segment: drilling asset_type: program billing_period: monthly billing_calc_method: well_afe_day billing_contact: Billing contact billing_email: example@email.com billing_phone: +1-415 652 0000 account_manager: Manager name asset_ids: - 4 app_ids: - 1 AppPurchasePayload: properties: app_purchase: type: array items: $ref: '#/definitions/PurchaseSubscriptionPayload' Dataset: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 name: type: string description: type: string data_type: type: string schema: type: object permission_workflow: type: object plottable: type: boolean merge_strategy: type: string indexes: type: object temporary: type: boolean permissions: type: array items: permission: type: string created_at: type: string format: date-time updated_at: type: string format: date-time AppRunDeveloper: properties: id: type: integer format: int64 first_name: type: string last_name: type: string email: type: string title: type: string profile_photo: type: string example: id: 1072 first_name: Derek last_name: Smith email: email7@corva.ai title: Drilling Engineer role: user profile_photo: aws_s3_file_path AppRun: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 app_id: type: integer format: int64 well_asset_id: type: integer format: int64 status: type: string started_at: type: string format: date-time finished_at: type: string format: date-time created_at: type: string format: date-time app_name: type: string app_version: type: string well_name: type: string app_stream_id: type: integer format: int64 app_stream_name: type: string app_stream_type: type: string notes: type: string completion_percentage: type: string segment: type: array dataset_names: type: array items: properties: dataset_name: type: string developer: type: object $ref: '#/definitions/AppRunDeveloper' relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer type: type: string example: id: 12345 type: app_run attributes: id: 12345 app_id: 111 well_asset_id: 222 status: pending started_at: '2020-01-01T08:00:00.000Z' finished_at: '2020-01-01T08:00:00.000Z' created_at: '2020-01-01T08:00:00.000Z' app_name: World Domination app_version: '1' segment: - drilling - completion - intervention well_name: The well app_stream_id: 123 app_stream_name: Waterfall app_stream_type: scheduler datasets: - Dataset1 - Dataset2 relationships: company: data: id: 12345 type: company AppRunSingle: properties: data: type: object $ref: '#/definitions/AppRun' included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: id: 12345 type: app_run attributes: id: 12345 app_id: 111 well_asset_id: 222 status: pending started_at: '2020-01-01T08:00:00.000Z' finished_at: '2020-01-01T08:00:00.000Z' created_at: '2020-01-01T08:00:00.000Z' app_name: World Domination app_version: '1' segment: - drilling - completion - intervention well_name: The well app_stream_id: 123 app_stream_name: Waterfall app_stream_type: scheduler datasets: - Dataset1 - Dataset2 relationships: company: data: id: 12345 type: company included: - id: 12345 type: company attributes: id: 12345 name: Corva Drilling Inc. AppRunList: properties: data: type: array items: $ref: '#/definitions/AppRun' included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: - id: 12345 type: app_run attributes: id: 12345 app_id: 111 well_asset_id: 222 status: pending started_at: '2020-01-01T08:00:00.000Z' finished_at: '2020-01-01T08:00:00.000Z' created_at: '2020-01-01T08:00:00.000Z' app_name: World Domination app_version: '1' segment: - drilling - completion - intervention well_name: The well app_stream_id: 123 app_stream_name: Waterfall app_stream_type: scheduler datasets: - Dataset1 - Dataset2 relationships: company: data: id: 12345 type: company included: - id: 12345 type: company attributes: id: 12345 name: Corva Drilling Inc. AppRunCreatePayload: properties: app_connection_id: type: integer format: int64 cache_behavior: type: string format: int64 enum: - delete - keep - override cache_override: type: object app_run: type: object properties: well_id: type: integer format: int64 app_stream_id: type: integer format: int64 app_version: type: string datasets: type: array items: properties: name: type: string settings: type: object properties: start: type: integer end: type: integer records_per_event: type: integer interval: type: integer example: app_connection_id: '12345' cache_behavior: delete cache_override: attribute: value app_run: well_id: '12345' app_stream_id: '12345' app_version: '1' datasets: - corva#activity-groups - corva#activities settings: start: 0 end: 3600 records_per_event: 50 interval: 600 AppConnectionItem: properties: id: type: integer format: int64 app_id: type: integer format: int64 settings: type: object status: type: string scheduler_type: type: string created_at: type: string format: date-time updated_at: type: string format: date-time next_schedule_check_at: type: string format: date-time package_version: type: string code_version: type: string notes: type: string app: type: object company: type: object example: id: 123 app_id: 10 settings: {} status: idle scheduler_type: no_scheduler created_at: '2020-01-01T08:00:00.000Z' updated_at: '2020-01-01T08:00:00.000Z' next_schedule_check_at: '2020-01-01T08:00:00.000Z' package_version: 1.0.0 code_version: '3' notes: Notes app: {} company: {} AppStreamItem: properties: id: type: integer format: int64 company_id: type: integer format: int64 asset_id: type: integer format: int64 name: type: string configuration: type: object status: type: string visibility: type: string segment: type: string source_type: type: string log_type: type: string log_identifier: type: string log_display_name: type: string merging_rerun_as_source: type: boolean merging_rerun_as_target: type: boolean running_rerun_as_source: type: boolean running_rerun_as_target: type: boolean draft: type: boolean settings: type: object started_by: type: string last_active_at: type: string format: date-time data_received_at: type: string format: date-time created_at: type: string format: date-time updated_at: type: string format: date-time app_connections: type: array items: $ref: '#/definitions/AppConnectionItem' company: type: object asset: type: object edr_provider: type: object streamx_edr_providers: type: array description: Resolved StreamX EDR providers from settings.streamx_edr_provider_ids. Contains only existing providers. items: properties: id: type: integer format: int64 name: type: string provider_type: type: string url: type: string username: type: string example: id: 123 company_id: 11 asset_id: 20 name: Rig HP 800 App Stream configuration: {} status: idle visibility: visible segment: drilling source_type: drilling log_type: time log_identifier: time merging_rerun_as_source: false merging_rerun_as_target: true running_rerun_as_source: false running_rerun_as_target: false draft: false settings: {} started_by: user@email.com last_active_at: '2020-01-01T08:00:00.000Z' data_received_at: '2020-01-01T08:00:00.000Z' created_at: '2020-01-01T08:00:00.000Z' updated_at: '2020-01-01T08:00:00.000Z' app_connections: - id: 123 app_id: 10 setting: {} status: idle scheduler_type: no_scheduler created_at: '2020-01-01T08:00:00.000Z' updated_at: '2020-01-01T08:00:00.000Z' next_schedule_check_at: '2020-01-01T08:00:00.000Z' app: {} company: {} company: {} asset: {} edr_provider: name: Edr Provider provider_type: witsml url: https://corva.ai username: username streamx_edr_providers: - id: 91 name: Edr Provider provider_type: witsml url: https://corva.ai username: username V2AppStreamIndex: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 company_id: type: integer format: int64 asset_id: type: integer format: int64 name: type: string configuration: type: object status: type: string visibility: type: string segment: type: string source_type: type: string log_type: type: string log_identifier: type: string log_display_name: type: string settings: type: object streamx_edr_providers: type: array items: properties: id: type: integer format: int64 name: type: string provider_type: type: string url: type: string username: type: string last_active_at: type: string format: date-time data_received_at: type: string format: date-time created_at: type: string format: date-time updated_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer type: type: string app_connections: type: object properties: data: type: array items: properties: id: type: integer type: type: string example: id: 12345 type: app_stream attributes: id: 12345 name: App Stream 6 visibility: public segment: drilling company_id: '1234' asset_id: '12345' configuration: {} status: idle source_type: drilling log_type: time log_identifier: time settings: {} streamx_edr_providers: [] last_active_at: '2020-01-01T08:00:00.000Z' data_received_at: '2020-01-01T08:00:00.000Z' created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company app_connections: data: - id: 12456 type: app_connection - id: 345 type: app_connection V2AppStreamItem: properties: data: type: object properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 company_id: type: integer format: int64 asset_id: type: integer format: int64 name: type: string configuration: type: object status: type: string visibility: type: string segment: type: string source_type: type: string log_type: type: string log_identifier: type: string log_display_name: type: string settings: type: object streamx_edr_providers: type: array items: properties: id: type: integer format: int64 name: type: string provider_type: type: string url: type: string username: type: string last_active_at: type: string format: date-time data_received_at: type: string format: date-time created_at: type: string format: date-time updated_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer type: type: string app_connections: type: object properties: data: type: array items: properties: id: type: integer type: type: string included: type: array items: properties: id: type: integer type: type: string attributes: type: object relationships: type: object example: data: id: 12345 type: app_stream attributes: id: 12345 name: App Stream 6 visibility: public segment: drilling company_id: '1234' asset_id: '12345' configuration: {} status: idle source_type: drilling log_type: time log_identifier: time settings: {} streamx_edr_providers: [] last_active_at: '2020-01-01T08:00:00.000Z' data_received_at: '2020-01-01T08:00:00.000Z' created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company app_connections: data: - id: 12456 type: app_connection - id: 345 type: app_connection included: - id: 12345 type: company attributes: id: 12345 name: Corva - id: 345 type: app_connection attributes: id: 348 app_id: 1234 status: active AppConnectionSettingsBackfillPayload: properties: app_key1: type: object app_key2: type: object example: corva.source-app: setting1: foobar setting2: some_s3_link corva.data_quality: start: 1696846892 end: 1696847513 AppStreamList: items: $ref: '#/definitions/AppStreamItem' V2AppStreamList: properties: data: type: array items: $ref: '#/definitions/V2AppStreamIndex' included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: - id: 12345 type: app_stream attributes: id: 12345 name: App Stream 6 visibility: public segment: drilling company_id: '1234' asset_id: '12345' configuration: {} status: idle source_type: drilling log_type: time log_identifier: time settings: {} streamx_edr_providers: [] last_active_at: '2020-01-01T08:00:00.000Z' data_received_at: '2020-01-01T08:00:00.000Z' created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company app_connections: data: - id: 12456 type: app_connection - id: 345 type: app_connection included: - id: 12345 type: company attributes: id: 12345 name: Corva - id: 345 type: app_connection attributes: id: 348 app_id: 1234 status: active AppStreamBatchUpdatePayload: properties: app_stream: type: object properties: status: type: string example: app_stream: status: active AppConnectionUpdateItemPayload: properties: id: type: integer format: int64 settings: type: object status: type: string AppConnectionResponse: properties: id: type: integer format: int64 app_id: type: integer format: int64 settings: type: object status: type: string scheduler_type: type: string created_at: type: string format: date-time updated_at: type: string format: date-time next_schedule_check_at: type: string format: date-time package_version: type: string code_version: type: string notes: type: string app: type: object company: type: object example: id: 123 app_id: 10 settings: {} status: idle scheduler_type: no_scheduler created_at: '2020-01-01T08:00:00.000Z' updated_at: '2020-01-01T08:00:00.000Z' next_schedule_check_at: '2020-01-01T08:00:00.000Z' package_version: 1.0.0 code_version: '3' notes: Notes app: {} company: {} AppConnectionPayload: properties: status: type: string app_id: type: integer app_stream_id: type: integer next_schedule_check_at: type: string settings: type: object example: status: corva app_id: drilling-roadmap app_stream_id: 2342 next_schedule_check_at: '2020-01-01T08:00:00.000Z' settings: visibility: public AppErrorAlert: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 errors_number: type: integer period: type: string notification_types: type: array created_by: type: string users: type: array created_at: type: string format: date-time updated_at: type: string format: date-time example: id: 111 type: AppErrorAlert attributes: id: 1 errors_number: 10 period: week notification_types: - mobile - desktop created_by: user@email.com users: - id: 111 first_name: John last_name: Doe email: example@email.com profile_photo: photo created_at: '2010-01-01T00:00:00.000Z' updated_at: '2010-01-01T00:00:00.000Z' AppErrorAlertPayload: properties: app_error_alert: type: object properties: errors_number: type: integer period: type: string enum: - minute - hour - day - week - month notification_types: type: array example: app_error_alert: errors_number: 50 period: week notification_types: - mobile - desktop Usage: properties: start_at: type: string format: date-time end_at: type: string format: date-time resource_type: type: string resource_id: type: integer measurement: type: decimal dimensions: type: object company_id: type: integer billable_id: type: integer created_at: type: string format: date-time updated_at: type: string format: date-time example: start_at: Thu, 09 Jan 2020 18:00:00 +0000 end_at: Thu, 09 Jan 2020 19:00:00 +0000 resource_type: Dataset resource_id: 1 measurement: 5.3 dimensions: {} company_id: 1 billable_id: 1 created_at: Thu, 09 Jan 2020 18:11:37 +0000 updated_at: Thu, 09 Jan 2020 19:04:17 +0000 UsageSummary: properties: start_at: type: string format: date-time end_at: type: string format: date-time resource_type: type: string resource_id: type: integer measurement: type: decimal cost: type: decimal dimensions: type: object company_id: type: integer billable_id: type: integer created_at: type: string format: date-time updated_at: type: string format: date-time example: start_at: Thu, 09 Jan 2020 18:00:00 +0000 end_at: Thu, 09 Jan 2020 19:00:00 +0000 resource_type: Dataset resource_id: 1 measurement: 5.3 cost: 6 dimensions: {} company_id: 1 billable_id: 1 created_at: Thu, 09 Jan 2020 18:11:37 +0000 updated_at: Thu, 09 Jan 2020 19:04:17 +0000 UsageTotal: properties: resource_type: type: string resource_id: type: integer measurement: type: decimal full_lambda_name: type: string date: type: string format: date-time cost: type: decimal example: resource_type: Dataset resource_id: 1 measurement: 15.3 full_lambda_name: environment_app-key date: '2019-11-01' cost: 16 UsageSummaryTotal: properties: resource_type: type: string resource_id: type: integer measurement: type: decimal full_lambda_name: type: string month: type: string format: date-time cost: type: decimal example: resource_type: Dataset resource_id: 1 measurement: 15.3 full_lambda_name: environment_app-key month: 2019-11 cost: 16 WorkflowIndex: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 workflow_key: type: string name: type: string overview: type: text caption: type: string visibility: type: string segment: type: string image_url: type: string video_url: type: string position: type: integer created_at: type: string format: date-time updated: type: string format: date-time attachment_metadata: type: array items: properties: file_name: type: string type: type: string uploaded_at: type: string format: date-time cdn_url: type: string relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer type: type: string apps: type: object properties: data: type: array items: properties: id: type: integer type: type: string example: id: 12345 type: workflow attributes: id: 12345 workflow_key: provider.workflow_6 name: Workflow 6 caption: Workflow 6 Caption visibility: public segment: drilling image_url: http://www.example.com/image.jpg video_url: http://www.example.com/video.mp4 position: 2 created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' attachment_metadata: - file_name: example.mp4 type: video uploaded_at: '2020-01-01T13:00:00.000Z' cdn_url: https://dz2j2ahzlt5dj.cloudfront.net/workflows/example.mp4 relationships: company: data: id: 12345 type: company apps: data: - id: 12456 type: app - id: 345 type: app Workflow: properties: data: type: object properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 workflow_key: type: string name: type: string caption: type: string visibility: type: string segment: type: string image_url: type: string video_url: type: string overview: type: string introduction: type: string position: type: integer created_at: type: string format: date-time updated: type: string format: date-time attachment_metadata: type: array items: properties: file_name: type: string type: type: string uploaded_at: type: string format: date-time cdn_url: type: string relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer type: type: string apps: type: object properties: data: type: array items: properties: id: type: integer type: type: string workflow_content_blocks: type: object properties: data: type: array items: properties: id: type: integer type: type: string included: type: array items: properties: id: type: integer type: type: string attributes: type: object relationships: type: object example: data: id: 12345 type: workflow attributes: id: 12345 workflow_key: provider.workflow_6 name: Workflow 6 caption: Workflow 6 Caption visibility: public segment: drilling image_url: http://www.example.com/image.jpg video_url: http://www.example.com/video.mp4 position: 2 overview: Overview text introduction: Introduction text created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' attachment_metadata: - file_name: example.mp4 type: video uploaded_at: '2020-01-01T13:00:00.000Z' cdn_url: https://dz2j2ahzlt5dj.cloudfront.net/workflows/example.mp4 relationships: company: data: id: 12345 type: company apps: data: - id: 12456 type: app - id: 345 type: app workflow_content_blocks: data: - id: 12446 type: workflow_content_block - id: 345 type: workflow_content_block included: - id: 12345 type: company attributes: id: 12345 name: Corva - id: 348 type: app attributes: id: 348 name: My App app_key: my.example.app - id: '356' type: workflow_content_block attributes: id: 356 title: 'WCB #2' description: 'WCB #2 description' position: 2 image_url: http://www.example.com/image.jpg video_url: http://www.example.com/video.mp4 attachment_metadata: - file_name: example.mp4 type: video uploaded_at: '2020-01-01T13:00:00.000Z' cdn_url: https://dz2j2ahzlt5dj.cloudfront.net/workflows/example.mp4 created_at: '2022-11-11T10:31:02.536Z' updated_at: '2022-11-11T10:31:02.536Z' relationships: workflow: data: id: '1372' type: workflow app: data: id: '8111' type: app WorkflowList: properties: data: type: array items: $ref: '#/definitions/WorkflowIndex' included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: - id: 12345 type: workflow attributes: id: 12345 workflow_key: provider.workflow_6 name: Workflow 6 overview: Long Text caption: Workflow 6 Caption visibility: public segment: drilling image_url: http://www.example.com/image.jpg video_url: http://www.example.com/video.mp4 position: 2 attachment_metadata: - file_name: example.mp4 type: video uploaded_at: '2020-01-01T13:00:00.000Z' cdn_url: https://dz2j2ahzlt5dj.cloudfront.net/workflows/example.mp4 created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company apps: data: - id: 12456 type: app - id: 345 type: app included: - id: 12345 type: company attributes: id: 12345 name: Corva - id: 348 type: app attributes: id: 348 name: My App app_key: my.example.app icon: id: 111 app_id: 348 file_name: file_name file_type: image media_type: icon s3_path: path_to_s3 url: https://package.qa.corva.ai/path/to/s3 position: 1 WorkflowPayload: properties: workflow: type: object properties: id: type: integer format: int64 name: type: string workflow_key: type: string caption: type: string visibility: type: string segment: type: string image_url: type: string video_url: type: string overview: type: string introduction: type: string position: type: integer app_keys: type: array attachment_metadata: type: array items: properties: file_name: type: string type: type: string uploaded_at: type: string format: date-time cdn_url: type: string workflow_content_blocks_attributes: type: array items: properties: title: type: string description: type: string video_url: type: string app_key: type: string attachment_metadata: type: array items: properties: file_name: type: string type: type: string uploaded_at: type: string format: date-time cdn_url: type: string example: workflow: name: workflow_1 workflow_key: provider.workflow_1 caption: 'Workflow #1' visibility: public segment: drilling image_url: http://www.example.com/image.jpg video_url: http://www.example.com/video.mp4 overview: Overview text introduction: Introduction text position: 2 app_keys: - app_key_1 - app_key_2 attachment_metadata: - file_name: example.mp4 type: video uploaded_at: '2020-01-01T13:00:00.000Z' cdn_url: https://dz2j2ahzlt5dj.cloudfront.net/workflows/example.mp4 workflow_content_blocks_attributes: - title: 'WCB #1' description: 'WCB #1 description' image_url: http://www.example.com/image.jpg video_url: http://www.example.com/video.mp4 attachment_metadata: - file_name: example.mp4 type: video uploaded_at: '2020-01-01T13:00:00.000Z' cdn_url: https://dz2j2ahzlt5dj.cloudfront.net/workflows/example.mp4 app_key: app_key_1 - title: 'WCB #2' description: 'WCB #2 description' image_url: http://www.example.com/image.jpg video_url: http://www.example.com/video.mp4 attachment_metadata: [] app_key: app_key_2 WorkflowContentBlock: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 title: type: string description: type: string position: type: integer image_url: type: string video_url: type: string created_at: type: string format: date-time updated: type: string format: date-time relationships: type: object properties: workflow: type: object properties: data: type: object properties: id: type: integer type: type: string app: type: object properties: data: type: object properties: id: type: integer type: type: string example: id: 12345 type: workflow_content_block attributes: id: 12345 title: Workflow Content Block Title description: Long text description position: 1 image_url: http://www.example.com/image.jpg video_url: http://www.example.com/video.mp4 created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' relationships: workflow: data: id: 12345 type: workflow app: data: id: 12456 type: app WorkflowContentBlockList: properties: data: type: array items: $ref: '#/definitions/WorkflowContentBlock' included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: - id: 12345 type: workflow_content_block attributes: id: 12345 title: Content Block Title description: Long text description position: 2 image_url: http://www.example.com/image.jpg video_url: http://www.example.com/video.mp4 created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' relationships: workflow: data: id: 12345 type: workflow app: data: id: 12456 type: app included: - id: 12345 type: Workflow attributes: id: 12345 name: 'WF #1' - id: 348 type: app attributes: id: 348 name: My App app_key: my.example.app WorkflowContentBlockPayload: properties: workflow_content_block: type: object properties: id: type: integer format: int64 title: type: string description: type: string position: type: integer image_url: type: string video_url: type: string overview: type: string introduction: type: string app_key: type: string example: workflow_content_block: id: 12345 title: Workflow Content Block Title description: Long text description position: 1 image_url: http://www.example.com/image.jpg video_url: http://www.example.com/video.mp4 created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' app_key: app_key WorkflowApp: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 coordinates: type: object settings: type: object created_at: type: string format: date-time updated_at: type: string format: date-time category: type: string availability: type: object package: type: object relationships: type: object properties: workflow: type: object properties: data: type: object properties: id: type: integer type: type: string app: type: object properties: data: type: object properties: id: type: integer type: type: string example: id: 12345 type: workflow_app attributes: id: 12345 coordinates: x: '0' y: '171' settings: some_setting: Setting value foo: bar created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' category: App Category availability: subscription: true asset_subscription: true package: id: 1 app_id: 2 version: 1 build: '1' status: published manifest: {} created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' label: '' notes: '' package_code_version: 1 url: https://package.qa.corva.ai/provider_1/app/corva-data-app-1/packages/1/app.js relationships: workflow: data: id: 12345 type: workflow app: data: id: 12456 type: app WorkflowAppList: properties: data: type: array items: $ref: '#/definitions/WorkflowApp' included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: - id: 12345 type: workflow_app attributes: id: 12345 coordinates: x: '0' y: '171' settings: some_setting: Setting value foo: bar created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' relationships: workflow: data: id: 12345 type: workflow app: data: id: 12456 type: app included: - id: 12345 type: Workflow attributes: id: 12345 name: 'WF #1' - id: 348 type: app attributes: id: 348 name: My App app_key: my.example.app WorkflowAppsPayload: properties: workflow_apps: type: array items: properties: id: type: integer format: int64 coordinates: type: object format: int64 settings: type: object example: workflow_apps: - id: 12345 coordinates: x: '19' y: '171' settings: some_setting: Setting value foo: bar - id: 178 coordinates: x: '3' y: '34' settings: some_setting: Setting value foo: bar WorkflowAppPayload: properties: workflow_app: type: object properties: id: type: integer format: int64 coordinates: type: object format: int64 settings: type: object example: workflow_app: coordinates: x: '19' y: '171' settings: some_setting: Setting value foo: bar WorkflowRoleIndex: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 workflow_id: type: int64 role: type: string position: type: integer segment: type: string image_url: type: string description: type: text relationships: type: object properties: workflow: type: object properties: data: type: object properties: id: type: int64 type: type: string example: id: 12 type: workflow_role attributes: id: 12 workflow_id: 12345 role: Drilling Engineer position: 1 segment: drilling image_url: https://cdn.cloudfront.net/workflow_roles/workflow_12345_role_drilling_engineer description: '' relationships: workflow: data: id: 12345 type: workflow WorkflowRoleList: properties: data: type: array items: $ref: '#/definitions/WorkflowRoleIndex' included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: - id: 12 type: workflow_role attributes: id: 12 workflow_id: 12345 name: Drilling Engineer position: 1 segment: drilling image_url: https://cdn.cloudfront.net/workflow_roles/workflow_12345_role_drilling_engineer description: '' relationships: workflow: data: id: 12345 type: workflow included: - id: 12345 type: workflow attributes: id: 12345 name: Drilling Engineer Workflow caption: '' segment: drilling introduction: long text created_at: '2023-09-30T12:33:34.555Z' updated_at: '2023-09-30T12:33:34.555Z' ColumnMapperTemplate: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 name: type: string witsml_source_link: type: string created_at: type: string format: date-time updated_at: type: string format: date-time column_mapper_hash_format: {} relationships: type: object properties: rig: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string intervention_unit: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string company: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string created_by: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string last_edited_by: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string column_mapper_template_channels: type: object properties: data: type: object items: properties: id: type: integer format: int64 type: type: string column_mapper_template_rules: type: object properties: data: type: object items: properties: id: type: integer format: int64 type: type: string example: id: 111 type: column_mapper_template attributes: id: 111 name: Your my Venus witsml_source_link: https://app.qa.corva.ai created_at: '2010-01-01T00:00:00.000Z' updated_at: '2010-01-01T00:00:00.000Z' column_mapper_hash_format: channel: column: column source_unit: unit backup_channels: - column: Column 2 source_unit: unit2 backup_rules: - duration_minutes: 20 conditions: - logical_operator: null operand: 10 operator: OPERATOR_EQUAL relationships: column_mapper_template_channels: data: - id: '123' type: column_mapper_template_channel company: data: id: '123' type: company rig: data: id: '123' type: rig intervention_unit: data: null created_by: data: id: '123' type: user last_edited_by: data: id: '123' type: user column_mapper_template_rules: data: - id: '123' type: column_mapper_template_rule ColumnMapperTemplates: properties: data: type: array items: $ref: '#/definitions/ColumnMapperTemplate' CreateColumnMapperTemplatePayload: properties: apply_to_all_streams: type: boolean column_mapper_template: properties: name: type: string rig_id: type: integer format: int64 description: Provide exactly one of rig_id or intervention_unit_id intervention_unit_id: type: integer format: int64 description: Provide exactly one of rig_id or intervention_unit_id app_stream_ids: type: array witsml_source_link: type: string column_mapper_template_channels: type: object example: apply_to_all_streams: true app_stream_ids: - 111 column_mapper_template: name: Random rig_id: 555 witsml_source_link: https://app.qa.corva.ai column_mapper_template_channels: channel: column: column source_unit: unit UpdateColumnMapperTemplatePayload: properties: apply_to_all_streams: type: boolean column_mapper_template: properties: name: type: string app_stream_ids: type: array rig_id: type: integer format: int64 description: Mutually exclusive with intervention_unit_id intervention_unit_id: type: integer format: int64 description: Mutually exclusive with rig_id witsml_source_link: type: string column_mapper_template_channels: {} example: apply_to_all_streams: true app_stream_ids: - 111 column_mapper_template: name: Random rig_id: 555 witsml_source_link: https://app.qa.corva.ai column_mapper_template_channels: channel: column: column source_unit: unit ColumnMapperTemplateChannel: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 channel: type: string column_name: type: string unit: type: string created_at: type: string format: date-time updated_at: type: string format: date-time primary_template_channel_id: type: integer format: int64 relationships: type: object properties: backup_template_channels: type: object items: properties: id: type: integer format: int64 type: type: string column_mapper_template_rules: type: object items: properties: data: type: object items: properties: id: type: integer format: int64 type: type: string example: id: 111 type: column_mapper_template_channel attributes: id: 111 channel: Channel column_name: Column name unit: un created_at: '2010-01-01T00:00:00.000Z' updated_at: '2010-01-01T00:00:00.000Z' primary_template_channel_id: 555 relationships: column_mapper_template_channels: data: - id: '123' type: column_mapper_template_channel column_mapper_template_rules: data: - id: '123' type: column_mapper_template_rule CreateColumnMapperTemplateChannelPayload: properties: column_mapper_template_channel: properties: channel: type: string column_name: type: string unit: type: string unitless: type: boolean primary_template_channel_id: type: integer format: int64 column_mapper_template_rules_attributes: type: object items: properties: duration_in_minutes: type: integer conditions: type: object properties: operator: type: string operand: type: string logical_operator: type: string example: column_mapper_template_channel: channel: rop column_name: OBR unit: ft unitless: false backup_template_channels_attributes: - channel: rop column_name: BRO unit: cm column_mapper_template_rules_attributes: - duration_in_minutes: 5 conditions: - operator: OPERATOR_EQUAL operand: 20 logical_operator: 'null' UpdateColumnMapperTemplateChannelPayload: properties: column_mapper_template_channel: properties: column_name: type: string unit: type: string unitless: type: boolean example: column_mapper_template_channel: column_name: OBR unit: ft unitless: false ColumnMapperTemplateRule: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 duration_in_minutes: type: integer conditions: type: object items: properties: operator: type: string enum: - OPERATOR_EQUAL - OPERATOR_NOT_EQUAL - OPERATOR_LESS_THAN - OPERATOR_MORE_THAN - OPERATOR_LESS_THAN_EQUAL - OPERATOR_MORE_THAN_EQUAL operand: type: string logical_operator: type: string enum: - OPERATOR_AND - OPERATOR_OR - 'null' created_at: type: string format: date-time updated_at: type: string format: date-time column_mapper_template_channel_id: type: integer format: int64 example: id: 111 type: column_mapper_template_rule attributes: id: 123 duration_in_minutes: 10 conditions: - operator: OPERATOR_EQUAL operand: 20 logical_operator: null created_at: '2010-01-01T00:00:00.000Z' updated_at: '2010-01-01T00:00:00.000Z' ColumnMapperChannelRules: properties: data: type: array items: $ref: '#/definitions/ColumnMapperChannelRule' ColumnMapperTemplateRulePayload: properties: column_mapper_template_rule: properties: duration_in_minutes: type: integer conditions: type: object items: properties: operator: type: string operand: type: integer logical_operator: type: string example: column_mapper_template_rule: duration_in_minutes: 10 conditions: - operator: OPERATOR_EQUAL operand: 20 logical_operator: null DashboardWorkflow: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 asset_id: type: integer format: int64 created_at: type: string format: date-time updated_at: type: string format: date-time relationships: type: object properties: workflow: type: object properties: data: type: object properties: id: type: integer type: type: string example: id: 12345 type: dashboard_workflow attributes: id: 12345 asset_id: 12345 created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' relationships: workflow: data: id: 12345 type: workflow DashboardWorkflowList: properties: data: type: array items: $ref: '#/definitions/DashboardWorkflow' included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: - id: 12345 type: dashboard_workflow attributes: id: 12345 asset_id: 12345 created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' relationships: workflow: data: id: 12345 type: workflow dashboard_apps: data: - id: 10000 type: dashboard_app - id: 10001 type: dashboard_app included: - id: 12345 type: workflow attributes: id: 12345 name: 'WF #1' - id: 10000 type: dashboard_app attributes: id: 10000 name: Corva Data App 1 settings: rigId: 5884 assetId: 31259041 - id: 10001 type: dashboard_app attributes: id: 10001 name: Corva Data App 2 settings: rigId: 5884 assetId: 31259041 DashboardWorkflowSingle: properties: data: type: object $ref: '#/definitions/DashboardWorkflow' included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: id: 12345 type: dashboard_workflow attributes: id: 12345 asset_id: 12345 created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' relationships: workflow: data: id: 12345 type: workflow dashboard_apps: data: - id: 10000 type: dashboard_app - id: 10001 type: dashboard_app included: - id: 12345 type: Workflow attributes: id: 12345 name: 'WF #1' - id: 10000 type: dashboard_app attributes: id: 10000 name: Corva Data App 1 settings: rigId: 5884 assetId: 31259041 - id: 10001 type: dashboard_app attributes: id: 10001 name: Corva Data App 2 settings: rigId: 5884 assetId: 31259041 CompetitorStatsData: properties: data: type: object properties: own_company: type: object properties: metric_1_key: type: object properties: min: type: float format: int64 max: type: float format: int64 median: type: float format: int64 q1: type: float format: int64 q3: type: float format: int64 metric_2_key: type: object properties: min: type: float format: int64 max: type: float format: int64 median: type: float format: int64 q1: type: float format: int64 q3: type: float format: int64 metric_3_key: type: object properties: min: type: float format: int64 max: type: float format: int64 median: type: float format: int64 q1: type: float format: int64 q3: type: float format: int64 other_companies: type: object properties: metric_1_key: type: object properties: min: type: float format: int64 max: type: float format: int64 median: type: float format: int64 q1: type: float format: int64 q3: type: float format: int64 metric_2_key: type: object properties: min: type: float format: int64 max: type: float format: int64 median: type: float format: int64 q1: type: float format: int64 q3: type: float format: int64 metric_3_key: type: object properties: min: type: float format: int64 max: type: float format: int64 median: type: float format: int64 q1: type: float format: int64 q3: type: float format: int64 more_wells_available: type: boolean example: data: own_company: bottom_to_slips_average: min: 89.47059 max: 89.47059 median: 89.47059 q1: 89.47059 q3: 89.47059 drilling_connection_average: min: 132.50789 max: 146.54971 median: 139.5288 q1: 139.5288 q3: 143.039255 weight_to_weight_average: min: 239.8053 max: 514.47059 median: 377.137945 q1: 377.137945 q3: 445.8042675 other_companies: bottom_to_slips_average: min: 89.47059 max: 89.47059 median: 89.47059 q1: 89.47059 q3: 89.47059 drilling_connection_average: min: 132.50789 max: 146.54971 median: 139.5288 q1: 139.5288 q3: 143.039255 weight_to_weight_average: min: 239.8053 max: 514.47059 median: 377.137945 q1: 377.137945 q3: 445.8042675 CompanyType: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 name: type: string provider: type: string example: id: 111 type: company attributes: id: 1 name: Company Name provider: Provider name CompanyListStructure: properties: data: type: array items: $ref: '#/definitions/CompanyType' AppStoreTemplateObject: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 title: type: string status: type: string view_type: type: string created_at: type: string format: date-time updated: type: string format: date-time relationships: type: object properties: app_store_template_sections: type: object properties: data: type: array items: properties: id: type: integer type: type: string example: id: 12345 type: app_store_template attributes: id: 12345 title: AppStore Template status: draft view_type: drilling created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' relationships: app_store_template_sections: data: - id: 12345 type: app_store_template_section AppStoreTemplateList: properties: data: type: array items: $ref: '#/definitions/AppStoreTemplateObject' included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: - id: 12345 type: app_store_template attributes: id: 12345 title: AppStore Template status: draft view_type: drilling created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' relationships: app_store_template_sections: data: - id: 12456 type: app_store_template_section - id: 345 type: app_store_template_section included: - id: 348 type: app_store_template_section attributes: id: 348 title: Title section_type: slide position: 1 AppStoreTemplatePayload: properties: app_store_template: type: object properties: title: type: string status: type: string example: app_store_template: title: New title status: draft view_type: drilling AppStoreTemplateSectionObject: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 title: type: string section_type: type: string view_type: type: string position: type: integer created_at: type: string format: date-time updated: type: string format: date-time relationships: type: object properties: app_store_template: type: object properties: data: type: object properties: id: type: integer type: type: string apps: type: object properties: data: type: array items: properties: id: type: integer type: type: string workflows: type: object properties: data: type: array items: properties: id: type: integer type: type: string app_store_template_apps: type: object properties: data: type: array items: properties: id: type: integer type: type: string app_id: type: integer workflow_id: type: integer app_store_articles: type: object properties: data: type: array items: properties: id: type: integer format: int64 caption: type: string name: type: string position: type: integer overview: type: text cover_url: type: string text: type: text date: type: string format: date-time visibility: type: string app_store_template_section_id: type: integer format: int64 banner: type: object properties: data: type: object properties: id: type: integer type: type: string example: id: 12345 type: app_store_template_section attributes: id: 12345 title: AppStore Template Section section_type: slide view_type: drilling position: 1 created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' relationships: app_store_template: data: id: 12345 type: app_store_template apps: data: - id: 12345 type: app workflows: data: - id: 12345 type: workflow app_store_template_apps: data: - id: 12345 type: app_store_template_app app_id: 1 workflow_id: 2 app_store_articles: data: - id: 12345 type: app_store_article caption: Caption name: Article name position: 1 visibility: public overview: Overview text text: Content text date: '2022-11-11T09:11:52.326Z' cover_url: https://example.com app_store_template_section_id: 1 banner: data: id: 12345 featured_title: Featured Title header: Header subheader: Sub header url: https://example.com/foo/bar custom_image_url: aws_image_url created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' AppStoreTemplateSectionList: properties: data: type: array items: $ref: '#/definitions/AppStoreTemplateSectionObject' included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: - id: 12345 type: app_store_template_section attributes: id: 12345 title: AppStore Template Section section_type: slide view_type: drilling position: 1 created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' relationships: app_store_template: data: id: 12456 type: app_store_template apps: data: - id: 12456 type: app - id: 345 type: app workflows: data: - id: 12456 type: workflow - id: 345 type: workflow included: - id: 348 type: app_store_template attributes: id: 348 title: Title status: draft - id: 349 type: app attributes: id: 348 name: App name app_key: App Key description: Description summary: Summary - id: 349 type: workflow attributes: id: 348 name: Workflow name caption: Caption overview: Overview apps: - 1 - 2 - id: 349 type: app_store_template_app attributes: id: 348 image_url: https://example.com/some/image/url position: 1 app_id: 123 workflow_id: null AppStoreTemplateSectionPayload: properties: app_store_template_section: type: object properties: title: type: string section_type: type: string position: type: integer app_ids: type: array workflow_ids: type: array banner_ids: type: array app_store_article_keys: type: array app_store_template_apps_attributes: type: object properties: image_url: type: string app_key: type: string workflow_id: type: integer app_store_articles_attributes: type: object properties: caption: type: string name: type: string overview: type: text cover_url: type: string text: type: text date: type: string format: date-time visibility: type: string position: type: integer banner_attributes: type: object properties: featured_title: type: string header: type: string subheader: type: string url: type: string custom_image_url: type: string example: app_store_template_section: title: New title section_type: slide position: 1 app_ids: - 1 - 2 - 3 workflow_ids: - 1 - 2 - 3 banner_ids: - 1 app_store_article_keys: - provider.article_name app_store_template_apps_attributes: - image_url: https://www.example.com/image.jpg app_key: app_key1 - image_url: https://www.example.com/image.jpg app_key: app_key2 - image_url: https://www.example.com/image.jpg workflow_id: 1 app_store_articles_attributes: - caption: Caption name: Article name visibility: public banner_attributes: featured_title: Featured Title header: Header subheader: Sub header url: https://example.com/foo/bar custom_image_url: aws_image_url AppStoreArticleObject: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 article_key: type: string caption: type: string name: type: string visibility: type: string cover_url: type: string position: type: string app_store_template_section_ids: type: array date: type: string format: date-time overview: type: text text: type: text created_at: type: string format: date-time updated: type: string format: date-time relationships: type: object properties: app_store_template_sections: type: object properties: data: type: array items: properties: id: type: integer type: type: string included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: id: 12345 type: app_store_article attributes: id: 12345 article_key: provider.article_name caption: Caption name: Article name visibility: public cover_url: https://example.com date: '2022-11-11T09:11:52.326Z' overview: Some overview description for Article text: Some content long text position: 1 app_store_template_section_ids: - 1 created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' AppStoreArticleList: properties: data: type: array items: $ref: '#/definitions/AppStoreArticleObject' example: data: - id: 12345 type: app_store_article attributes: id: 12345 article_key: provider.article_name caption: Caption name: Article name visibility: public cover_url: https://example.com date: '2022-11-11T09:11:52.326Z' overview: Some overview description for Article text: Some content long text position: 1 app_store_template_section_id: 1 created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' relationships: app_store_template_sections: data: - id: 111 type: app_store_template_section included: - id: 111 type: app_store_template_section attributes: id: 111 title: Section Title section_type: section AppStoreArticlePayload: properties: app_store_article: type: object properties: caption: type: string name: type: string visibility: type: string cover_url: type: string position: type: integer app_store_template_section_id: type: integer format: int64 date: type: string format: date-time overview: type: text text: type: text example: app_store_article: caption: Caption name: Article name visibility: public cover_url: https://example.com date: '2022-11-11T09:11:52.326Z' position: 1 app_store_template_section_id: 1 overview: Some overview description for Article text: Some content long text DatasetAuditIndex: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 action: type: string user_email: type: string comment: type: string name: type: string description: type: string data_type: type: string plottable: type: boolean schema: type: object permission_workflow: type: array created_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer type: type: string example: id: 12345 type: dataset_audit attributes: id: 12345 action: create user_email: example@corva.com comment: dataset is created name: provider#dataset-name description: Description of the dataset data_type: time plottable: false schema: {} permission_workflow: - read - write - delete created_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company DatasetAudit: properties: data: type: object properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 action: type: string user_email: type: string comment: type: string name: type: string description: type: string data_type: type: string plottable: type: boolean schema: type: object permission_workflow: type: array created_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer type: type: string example: data: id: 12345 type: dataset_audit attributes: id: 12345 action: create user_email: example@corva.com comment: Dataset is created name: provider#dataset-name description: Description of the dataset data_type: time plottable: false schema: {} permission_workflow: - read - write - delete created_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company DatasetAuditList: properties: data: type: array items: $ref: '#/definitions/DatasetAudit' example: data: - id: 12345 type: dataset_audit attributes: id: 12345 action: create user_email: example@corva.com name: provider#dataset-name description: Description of the dataset data_type: time plottable: false schema: {} permission_workflow: - read - write - delete created_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company PermissionAuditIndex: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 action: type: string user_email: type: string comment: type: string ability: type: string resource_class: type: string friendly_name: type: string owner_type: type: string owner_id: type: integer format: int64 owner_name: type: string owner_email: type: string created_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer type: type: string example: id: 12345 type: permission_audit attributes: id: 12345 action: create user_email: example@corva.com comment: Permission has been created ability: read resource_class: User friendly_name: Read one user owner_type: User owner_id: 12345 owner_name: John Doe owner_email: user@corva.ai created_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company PermissionAudit: properties: data: type: object properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 action: type: string user_email: type: string comment: type: string ability: type: string resource_class: type: string friendly_name: type: string owner_type: type: string owner_id: type: integer format: int64 owner_name: type: string owner_email: type: string created_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer type: type: string included: type: array items: properties: id: type: integer type: type: string attributes: type: object relationships: type: object example: data: id: 12345 type: permission_audit attributes: id: 12345 action: create user_email: example@corva.com comment: Permission has been created ability: read resource_class: User friendly_name: Read one user owner_type: User owner_id: 12345 owner_name: John Doe owner_email: user@corva.ai created_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company included: - id: 12345 type: company attributes: id: 12345 name: Corva PermissionAuditList: properties: data: type: array items: $ref: '#/definitions/PermissionAuditIndex' included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: - id: 12345 type: permission_audit attributes: id: 12345 action: create user_email: example@corva.com comment: Permission has been created ability: read resource_class: User friendly_name: Read one user owner_type: User owner_id: 12345 owner_name: John Doe owner_email: user@corva.ai created_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company included: - id: 12345 type: company attributes: id: 12345 name: Corva GroupMembershipAuditIndex: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 action: type: string user_email: type: string comment: type: string target_user_email: type: string target_user_name: type: string group_name: type: string group_id: type: integer format: int64 created_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer type: type: string example: id: 12345 type: group_membership_audit attributes: id: 12345 action: add user_email: admin@corva.com comment: null target_user_email: user@corva.com target_user_name: John Doe group_name: admin group_id: 678 created_at: '2026-03-12T09:11:52.326Z' relationships: company: data: id: 12345 type: company GroupMembershipAudit: properties: data: type: object properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 action: type: string user_email: type: string comment: type: string target_user_email: type: string target_user_name: type: string group_name: type: string group_id: type: integer format: int64 created_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer type: type: string included: type: array items: properties: id: type: integer type: type: string attributes: type: object relationships: type: object example: data: id: 12345 type: group_membership_audit attributes: id: 12345 action: add user_email: admin@corva.com comment: null target_user_email: user@corva.com target_user_name: John Doe group_name: admin group_id: 678 created_at: '2026-03-12T09:11:52.326Z' relationships: company: data: id: 12345 type: company included: - id: 12345 type: company attributes: id: 12345 name: Corva GroupMembershipAuditList: properties: data: type: array items: $ref: '#/definitions/GroupMembershipAuditIndex' included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: - id: 12345 type: group_membership_audit attributes: id: 12345 action: add user_email: admin@corva.com comment: null target_user_email: user@corva.com target_user_name: John Doe group_name: admin group_id: 678 created_at: '2026-03-12T09:11:52.326Z' relationships: company: data: id: 12345 type: company included: - id: 12345 type: company attributes: id: 12345 name: Corva ProvisioningSubscriptionAuditIndex: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 action: type: string user_email: type: string comment: type: string name: type: string uuid: type: string status: type: string segment: type: string features: type: object price: type: string asset_type: type: string new_subscription_version_id: type: integer format: int64 provider_company_id: type: integer format: int64 activated_at: type: string format: date-time cancelled_at: type: string format: date-time created_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer type: type: string example: id: 12345 type: subscription_audit attributes: id: 12345 action: create user_email: example@corva.com comment: ProvisioningSubscription is created name: Subscription Name uuid: bb80a91f-3363-4a7d-88c1-382c48d1260b status: active segment: drilling features: {} price: '9.99' asset_type: company new_subscription_version_id: 12346 provider_company_id: 12346 activated_at: '2022-11-11T09:11:52.326Z' cancelled_at: '2022-11-11T09:11:52.326Z' created_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company ProvisioningSubscriptionAudit: properties: data: type: object properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 action: type: string user_email: type: string comment: type: string name: type: string uuid: type: string status: type: string segment: type: string features: type: object price: type: string asset_type: type: string new_subscription_version_id: type: integer format: int64 provider_company_id: type: integer format: int64 activated_at: type: string format: date-time cancelled_at: type: string format: date-time created_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer type: type: string included: type: array items: properties: id: type: integer type: type: string attributes: type: object relationships: type: object example: data: id: 12345 type: subscription_audit attributes: id: 12345 action: create user_email: example@corva.com comment: ProvisioningSubscription is created name: Subscription Name uuid: bb80a91f-3363-4a7d-88c1-382c48d1260b status: active segment: drilling features: {} price: '9.99' asset_type: company new_subscription_version_id: 12346 provider_company_id: 12346 activated_at: '2022-11-11T09:11:52.326Z' cancelled_at: '2022-11-11T09:11:52.326Z' created_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company included: - id: 12345 type: company attributes: id: 12345 name: Corva ProvisioningSubscriptionAuditList: properties: data: type: array items: $ref: '#/definitions/ProvisioningSubscriptionAuditIndex' included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: - id: 12345 type: subscription_audit attributes: id: 12345 action: create user_email: example@corva.com comment: ProvisioningSubscription is created name: Subscription Name uuid: bb80a91f-3363-4a7d-88c1-382c48d1260b status: active segment: drilling features: {} price: '9.99' asset_type: company new_subscription_version_id: 12346 provider_company_id: 12346 activated_at: '2022-11-11T09:11:52.326Z' cancelled_at: '2022-11-11T09:11:52.326Z' created_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company included: - id: 12345 type: company attributes: id: 12345 name: Corva PlatformSubscriptionAuditIndex: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 action: type: string user_email: type: string comment: type: string name: type: string uuid: type: string status: type: string segment: type: string features: type: object price: type: string asset_type: type: string new_subscription_version_id: type: integer format: int64 provider_company_id: type: integer format: int64 activated_at: type: string format: date-time cancelled_at: type: string format: date-time created_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer type: type: string example: id: 12345 type: subscription_audit attributes: id: 12345 action: create user_email: example@corva.com comment: PlatformSubscription is created name: Subscription Name uuid: bb80a91f-3363-4a7d-88c1-382c48d1260b status: active segment: drilling features: {} price: '9.99' asset_type: company new_subscription_version_id: 12346 provider_company_id: 12346 activated_at: '2022-11-11T09:11:52.326Z' cancelled_at: '2022-11-11T09:11:52.326Z' created_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company PlatformSubscriptionAudit: properties: data: type: object properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 action: type: string user_email: type: string comment: type: string name: type: string uuid: type: string status: type: string segment: type: string features: type: object price: type: string asset_type: type: string new_subscription_version_id: type: integer format: int64 provider_company_id: type: integer format: int64 activated_at: type: string format: date-time cancelled_at: type: string format: date-time created_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer type: type: string included: type: array items: properties: id: type: integer type: type: string attributes: type: object relationships: type: object example: data: id: 12345 type: subscription_audit attributes: id: 12345 action: create user_email: example@corva.com comment: PlatformSubscription is created name: Subscription Name uuid: bb80a91f-3363-4a7d-88c1-382c48d1260b status: active segment: drilling features: {} price: '9.99' asset_type: company new_subscription_version_id: 12346 provider_company_id: 12346 activated_at: '2022-11-11T09:11:52.326Z' cancelled_at: '2022-11-11T09:11:52.326Z' created_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company included: - id: 12345 type: company attributes: id: 12345 name: Corva PlatformSubscriptionAuditList: properties: data: type: array items: $ref: '#/definitions/PlatformSubscriptionAuditIndex' included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: - id: 12345 type: subscription_audit attributes: id: 12345 action: create user_email: example@corva.com comment: PlatformSubscription is created name: Subscription Name uuid: bb80a91f-3363-4a7d-88c1-382c48d1260b status: active segment: drilling features: {} price: '9.99' asset_type: company new_subscription_version_id: 12346 provider_company_id: 12346 activated_at: '2022-11-11T09:11:52.326Z' cancelled_at: '2022-11-11T09:11:52.326Z' created_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company included: - id: 12345 type: company attributes: id: 12345 name: Corva PurchaseSubscriptionAuditIndex: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 action: type: string user_email: type: string comment: type: string name: type: string uuid: type: string status: type: string segment: type: string features: type: object price: type: string asset_type: type: string new_subscription_version_id: type: integer format: int64 provider_company_id: type: integer format: int64 activated_at: type: string format: date-time cancelled_at: type: string format: date-time created_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer type: type: string example: id: 12345 type: subscription_audit attributes: id: 12345 action: create user_email: example@corva.com comment: PurchaseSubscription is created name: Subscription Name uuid: bb80a91f-3363-4a7d-88c1-382c48d1260b status: active segment: drilling features: {} price: '9.99' asset_type: company new_subscription_version_id: 12346 provider_company_id: 12346 activated_at: '2022-11-11T09:11:52.326Z' cancelled_at: '2022-11-11T09:11:52.326Z' created_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company PurchaseSubscriptionAudit: properties: data: type: object properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 action: type: string user_email: type: string comment: type: string name: type: string uuid: type: string status: type: string segment: type: string features: type: object price: type: string asset_type: type: string new_subscription_version_id: type: integer format: int64 provider_company_id: type: integer format: int64 activated_at: type: string format: date-time cancelled_at: type: string format: date-time created_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer type: type: string included: type: array items: properties: id: type: integer type: type: string attributes: type: object relationships: type: object example: data: id: 12345 type: subscription_audit attributes: id: 12345 action: create user_email: example@corva.com comment: PurchaseSubscription is created name: Subscription Name uuid: bb80a91f-3363-4a7d-88c1-382c48d1260b status: active segment: drilling features: {} price: '9.99' asset_type: company new_subscription_version_id: 12346 provider_company_id: 12346 activated_at: '2022-11-11T09:11:52.326Z' cancelled_at: '2022-11-11T09:11:52.326Z' created_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company included: - id: 12345 type: company attributes: id: 12345 name: Corva PurchaseSubscriptionAuditList: properties: data: type: array items: $ref: '#/definitions/PurchaseSubscriptionAuditIndex' included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: - id: 12345 type: subscription_audit attributes: id: 12345 action: create user_email: example@corva.com comment: PurchaseSubscription is created name: Subscription Name uuid: bb80a91f-3363-4a7d-88c1-382c48d1260b status: active segment: drilling features: {} price: '9.99' asset_type: company new_subscription_version_id: 12346 provider_company_id: 12346 activated_at: '2022-11-11T09:11:52.326Z' cancelled_at: '2022-11-11T09:11:52.326Z' created_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company included: - id: 12345 type: company attributes: id: 12345 name: Corva EventPayload: properties: event: type: string enum: - dataset.create - dataset.delete actor: type: object properties: id: type: integer format: int64 type: type: string resource_type: type: string enum: - Dataset resource_id: type: string data: type: object example: event: dataset.create actor: id: 111 type: User resource_type: Dataset resource_id: 1234 data: name: Dataset Name company_id: 1 EventFailureResponse: properties: code: type: integer message: type: string example: code: 400 message: Payload is invalid TotalAppUsage: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: string app_name: type: string device_family: type: string os_family: type: string useragent_family: type: string corva_next: type: boolean event_sum: type: integer user_email: type: string user_id: type: integer user_mobile: type: string user_name: type: string user_profile_photo: type: string user_group: type: string user_title: type: string AppUsageByUser: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: string app_name: type: string event_sum: type: integer user_id: type: integer user_name: type: string user_email: type: string company_name: type: string example: id: 12345 type: app_usage attributes: id: f89c app_name: Corva Real-Time Traces event_sum: 12345 user_id: 12345 user_name: John Doe user_email: example@email.com company_name: Nova Poshta AppUsageByViewDate: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: string app_name: type: string event_sum: type: integer user_email: type: string user_id: type: integer user_mobile: type: string user_name: type: string user_profile_photo: type: string user_title: type: string view_date: type: string TotalAppUsageList: properties: data: type: array items: $ref: '#/definitions/TotalAppUsage' example: data: - id: 12345 type: app_usage attributes: id: f89c app_name: Corva Real-Time Traces device_family: Mac os_family: Mac OS X useragent_family: Chrome event_sum: 12345 user_email: example@example.com user_id: 123 user_mobile: '+11234567890' user_name: John Doe user_profile_photo: https://s3-path-to-photo user_title: Engineer user_group: RTOC AppUsageByUserList: properties: data: type: array items: $ref: '#/definitions/AppUsageByUser' example: data: - id: 12345 type: app_usage attributes: id: f89c app_name: Corva Real-Time Traces event_sum: 12345 user_id: 12345 user_name: John Doe user_email: example@email.com company_name: Nova Poshta AppUsageByViewDateList: properties: data: type: array items: $ref: '#/definitions/AppUsageByViewDate' example: data: - id: 12345 type: app_usage attributes: id: f89c app_name: Corva Real-Time Traces event_sum: 12345 view_date: '2023-08-24' user_id: 123 user_name: John Doe user_email: example@example.com user_profile_photo: https://s3-path-to-photo user_title: Engineer user_mobile: '+11234567890' AppUsageTopApps: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: string app_name: type: string event_sum: type: integer view_date: type: string example: id: 12345 type: app_usage attributes: id: '12_345' app_name: Corva Real-Time Traces event_sum: 12345 view_date: '2023-08-24' AppUsageTopAppsList: properties: data: type: array items: $ref: '#/definitions/AppUsageTopApps' example: data: - id: 12345 type: app_usage attributes: id: f89c app_name: Corva Real-Time Traces event_sum: 12345 view_date: '2023-08-24' TotalAppUsageTrend: properties: data: type: array items: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: string event_sum: type: integer view_date: type: string example: data: - id: null type: app_usage attributes: id: null event_sum: 12345 view_date: '2023-08-24' PartialWellRerun: properties: id: type: string type: type: string attributes: type: object properties: id: type: integer format: int64 source_asset_id: type: integer format: int64 target_asset_id: type: integer format: int64 source_well_name: type: string target_well_name: type: string source_app_stream_id: type: integer format: int64 target_app_stream_id: type: integer format: int64 rerun_mode: type: string start_timestamp: type: integer format: int64 end_timestamp: type: integer format: int64 rig_id: type: integer format: int64 rig_name: type: string company_id: type: integer format: int64 company_name: type: integer format: int64 status: type: string completed_at: type: string format: date-time merge_started_at: type: string format: date-time completion_rate: type: float created_by: type: object properties: first_name: type: string last_name: type: string profile_photo: type: string email: type: string mergeable: type: boolean fail_reasons: type: object properties: app_name: type: string app_id: type: integer format: int64 fail_reason: type: string relationships: type: object properties: app_progresses: type: object properties: data: type: object properties: id: type: integer format: string type: type: string example: id: '123' type: partial_well_rerun attributes: id: 123 source_asset_id: 555 target_asset_id: 999 source_well_name: Original well target_well_name: Target well source_app_stream_id: 1395 target_app_stream_id: 1402 rerun_mode: live start_timestamp: 1543847760 end_timestamp: null rig_id: 111 rig_name: The drill company_id: 222 company_name: Mainframe completed_at: '2010-01-01T00:00:00.000Z' merge_started_at: '2010-01-01T00:00:00.000Z' status: running created_at: first_name: Tom last_name: Jerry profile_photo: null email: tomjerry@gmail.com mergeable: false mergeable_reason: All streams are not synchronized fail_reasons: - app_name: App app_id: 123 fail_reason: Failed relationships: app_progresses: data: - id: '123' type: partial_well_rerun_app_progress PartialWellRerunFull: properties: data: $ref: '#/definitions/PartialWellRerun' included: type: array items: $ref: '#/definitions/PartialWellRerunAppProgress' example: data: id: '123' type: partial_well_rerun attributes: id: 123 source_asset_id: 555 target_asset_id: 999 source_well_name: Original well target_well_name: Target well source_app_stream_id: 1395 target_app_stream_id: 1402 rerun_mode: live start_timestamp: 1543847760 end_timestamp: null rig_id: 111 rig_name: The drill company_id: 222 company_name: Mainframe status: running created_at: first_name: Tom last_name: Jerry profile_photo: null email: tomjerry@gmail.com mergeable: false mergeable_reason: All streams are not synchronized relationships: app_progresses: data: - id: '123' type: partial_well_rerun_app_progress included: - id: '123' type: partial_well_rerun_app_progress attributes: app_id: 44 status: merging app_key: corva.enrichment-wrapper relationships: dataset_progresses: data: - id: '4' type: partial_well_rerun_dataset_progress app_connection_progresses: data: - id: '5' type: partial_well_rerun_app_connection_progress PartialWellRerunAppProgress: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: app_id: type: integer format: int64 app_key: type: string app_name: type: string status: type: string fail_reason: type: string rerun_status: type: string rerun_completion_rate: type: float partial_well_rerun_id: type: integer format: int64 relationships: type: object properties: dataset_progresses: type: array items: properties: data: type: object properties: id: type: integer format: string type: type: string app_connection_progresses: type: array items: properties: data: type: object properties: id: type: integer format: string type: type: string included: type: array items: $ref: '#/definitions/PartialWellRerunDatasetProgress' example: data: id: '123' type: partial_well_rerun_app_progress attributes: app_id: 124 app_key: corva.enrichment-wrapper status: merging fail_reason: null relationships: dataset_progresses: data: - id: '5' type: partial_well_rerun_dataset_progress app_connection_progresses: data: - id: '6' type: partial_well_rerun_app_connection_progress included: - id: '5' type: partial_well_rerun_dataset_progress attributes: dataset_id: 132 processed_timestamp: 1543847760 completed: false dataset_name: corva#wits - id: '6' type: partial_well_rerun_app_connection_progress attributes: app_connection_id: 444 rerun_app_connection_id: 555 completed: false PartialWellRerunDatasetProgress: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: dataset_id: type: integer format: int64 processed_timestamp: type: integer completed: type: boolean dataset_name: type: string example: id: 123 type: partial_well_rerun_dataset_progress attributes: id: 100 dataset_id: 786 processed_timestamp: 58457475 completed: false dataset_name: New dataset CreatePartialWellRerunPayload: properties: rerun: type: object properties: name: type: string status: type: string enum: - initialized - running - pending_merge - merge_initialized - merging - failed - stopped - completed start_timestamp: type: integer end_timestamp: type: integer data_source: type: string enum: - witsml - corva#wits example: rerun: name: Casing 13in status: running start_timestamp: 55555 end_timestamp: 66666 data_source: witsml UpdatePartialWellRerunPayload: properties: rerun: type: object properties: status: type: string start_timestamp: type: integer end_timestamp: type: integer app_progresses: type: array properties: app_id: type: integer status: type: integer dataset_progresses: type: array properties: dataset_id: type: integer processed_timestamp: type: integer completed: type: boolean app_connection_progresses: type: array properties: app_connection_id: type: integer completed: type: boolean example: rerun: status: stopped start_timestamp: 55555 end_timestamp: 66666 data_source: witsml app_progresses: - app_id: 249 status: completed dataset_progresses: - dataset_id: 345 processed_timestamp: 55560 completed: false app_connection_progresses: - app_connection_id: 567 completed: false UpdatePartialWellRerunAppProgressPayload: properties: app_progress: type: object properties: status: type: integer completed_app_connection: type: integer fail_reason: type: string dataset_progresses: type: array properties: dataset_id: type: integer processed_timestamp: type: integer completed: type: boolean app_connection_progresses: type: array properties: dataset_id: type: integer completed: type: boolean example: app_progress: status: completed completed_app_connection: 123 fail_reason: Failed dataset_progresses: - dataset_id: 345 processed_timestamp: 55560 completed: false app_connection_progresses: - app_connection_id: 345 completed: false SearchSuggestionItem: properties: id: type: integer format: int64 name: type: string type: type: string example: id: 111 name: An app name type: App SearchSuggestionResult: properties: data: type: array items: $ref: '#/definitions/SearchSuggestionItem' example: data: - id: 111 name: An app name type: App CompanyV1: properties: id: type: integer format: int64 name: type: string time_zone: type: string language: type: string provider: type: string unit_system: type: object custom_unit_system: type: object custom_units: type: object dev_center_enabled: type: boolean competitor_analysis_enabled: type: boolean alert_workflow_id: type: integer format: int64 description: ID of the AlertWorkflow assigned to this company. Null means the global default workflow is used. alert_rbac_enabled: type: boolean description: Whether alert role-based access control is enabled for this company. tool_ordering_enabled: type: boolean description: Whether the Tool Ordering feature is enabled for this company. example: id: 123 name: Company Name time_zone: America/Chicago language: English provider: Corva unit_system: system: imperial density: ppg length: ft shortLength: in custom_unit_system: mass: kg distance: m custom_units: mass: metrics: - kg - g - mg default: kg distance: metrics: - m - km - mile default: m dev_center_enabled: true competitor_analysis_enabled: true alert_workflow_id: 5 alert_rbac_enabled: false tool_ordering_enabled: false CompanyV1List: items: $ref: '#/definitions/CompanyV1' example: - id: 123 name: Company Name time_zone: America/Chicago language: English provider: Corva unit_system: system: imperial density: ppg length: ft shortLength: in custom_unit_system: mass: kg distance: m custom_units: mass: metrics: - kg - g - mg default: kg distance: metrics: - m - km - mile default: m dev_center_enabled: true competitor_analysis_enabled: true alert_workflow_id: 5 alert_rbac_enabled: false tool_ordering_enabled: false CompanyV1Payload: properties: name: type: string time_zone: type: string language: type: string custom_units: type: object properties: name_of_metric: type: object properties: metrics: type: array default: type: string custom_unit_system: type: object properties: name_of_metric: type: string example: name: Company Name time_zone: America/Chicago language: English custom_units: mass: metrics: - kg - g - mg default: kg distance: metrics: - m - km - mile default: m custom_unit_system: mass: kg distance: m CompanyV1UnitSystemParam: properties: name_of_metric: type: string example: angle: value system: imperial density: ppg Goal: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 name: type: string goal_type: type: string data: type: object example: id: 123 type: goal attributes: id: 123 name: Casing Name goal_type: casing data: rotary_distance_drilled: '555' laterial_distance_drilled: '1251' rotary_drilling_time: '4594' GoalCreatePayload: properties: goal: type: object properties: goal_type: type: string enum: - company - program - well - rig - well_section - casing - intervention_unit - intervention_unit_event owner_type: type: string enum: - Program - Well - Company - Rig - InterventionUnit - InterventionUnitEvent - null owner_id: type: integer format: int64 company_id: type: integer format: int64 name: type: string data: type: object example: goal: goal_type: well_section owner_type: Well owner_id: 123 company_id: 11 name: Well Section name data: rotary_distance_drilled: '555' laterial_distance_drilled: '1251' rotary_drilling_time: '4594' GoalUpdatePayload: properties: goal: type: object properties: name: type: string data: type: object example: goal: name: Casing 14in data: rotary_distance_drilled: '555' laterial_distance_drilled: '1251' rotary_drilling_time: '4594' ProjectObject: properties: data: type: object properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 name: type: string status: type: string user_id: type: integer format: int64 description: type: text settings: type: object dependencies: type: object created_at: type: string format: date-time updated: type: string format: date-time relationships: type: object included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: id: 12345 type: project attributes: id: 12345 name: Project Name status: active user_id: 348 description: Project description text settings: foo: bar dependencies: flask: 1 python3: 1 created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' relationships: user: data: id: 348 type: user included: - id: 348 type: user attributes: id: 348 first_name: John last_name: Doe email: jo.doe@example.com created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' ProjectList: properties: data: type: array items: $ref: '#/definitions/ProjectObject' included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: - id: 12345 type: project attributes: id: 12345 name: Project Name status: active user_id: 348 description: Project description text settings: foo: bar dependencies: flask: 1 python3: 1 created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' relationships: {} included: [] ProjectPayload: properties: project: type: object properties: name: type: string status: type: string description: type: text settings: type: object dependencies: type: object example: project: name: Project name status: active description: Project description text settings: foo: bar dependencies: flask: 1 python3: 1 ProjectFolderObject: properties: data: type: object properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 name: type: string parent_project_folder_id: type: integer format: int64 created_at: type: string format: date-time updated: type: string format: date-time relationships: type: object included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: id: 12345 type: project_folder attributes: id: 12345 name: Folder Name parent_project_folder_id: 12346 created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' relationships: project: data: id: 348 type: project sub_project_folders: data: - id: 1 type: project_folder included: - id: 348 type: project attributes: id: 348 name: Project Name status: active description: Project description created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' - id: 1 type: project_folder attributes: id: 348 name: Sub Folder for Folder Name parent_project_folder_id: 12345 created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' ProjectFolderList: properties: data: type: array items: $ref: '#/definitions/ProjectFolderObject' included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: - id: 12345 type: project_folder attributes: id: 12345 name: Folder Name parent_project_folder_id: 12346 created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' relationships: {} included: [] ProjectFolderPayload: properties: project_folder: type: object properties: name: type: string parent_project_folder_id: type: integer example: project_folder: name: Folder name parent_project_folder_id: 111 ProjectFileObject: properties: data: type: object properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 name: type: string path: type: string project_folder_id: type: integer format: int64 created_at: type: string format: date-time updated: type: string format: date-time signed_url: type: string relationships: type: object included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: id: 12345 type: project_file attributes: id: 12345 name: File Name path: Folder Name/File Name project_folder_id: 12346 created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' signed_url: https://fe-projects.s3.amazonaws.com/Folder%201/File%201?X-Amz-Expires=900&X-Amz-Date=20240206T105358Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=REDACTED_AWS_ACCESS_KEY_ID%2F20240206%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=f3da284edec0619ddd315a57d9a28343be1baf7a868cbb77afba2e47beb34d03 relationships: project_folder: data: id: 348 type: project_folder included: - id: 348 type: project_folder attributes: id: 348 name: Folder Name created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' ProjectFileList: properties: data: type: array items: $ref: '#/definitions/ProjectFileObject' included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: - id: 12345 type: project_file attributes: id: 12345 name: File Name path: Folder Name/File Name project_folder_id: 12346 signed_url: https://fe-projects.s3.amazonaws.com/Folder%201/File%201?X-Amz-Expires=900&X-Amz-Date=20240206T105358Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=REDACTED_AWS_ACCESS_KEY_ID%2F20240206%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=f3da284edec0619ddd315a57d9a28343be1baf7a868cbb77afba2e47beb34d03 created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' relationships: {} included: [] ProjectFilePayload: properties: project_file: type: object properties: name: type: string project_folder_id: type: integer file: type: string example: project_file: name: File name project_folder_id: 111 file: 'Content of the file Next line' AppSchedule: properties: id: type: integer format: int64 app_connection_id: type: integer format: int64 status: type: string information: type: string interval: type: integer start_at: type: string format: date-time end_at: type: string format: date-time queued_at: type: string format: date-time started_at: type: string format: date-time completed_at: type: string format: date-time settings: type: object example: id: 12345 type: app_type attributes: id: 12345 app_connection_id: 9595 status: completed information: Random interval: 500 start_at: '2020-01-01T08:00:00.000Z' end_at: '2020-01-01T08:00:00.000Z' queued_at: '2020-01-01T08:00:00.000Z' started_at: '2020-01-01T08:00:00.000Z' completed_at: '2020-01-01T08:00:00.000Z' settings: {} CreateAppSchedulePayload: properties: app_schedule: type: object items: properties: app_connection_id: type: integer format: int64 status: type: string information: type: string start_at: type: string format: date-time settings: type: object example: app_schedule: app_connection_id: 9595 status: completed information: Random start_at: '2020-01-01T08:00:00.000Z' settings: {} UpdateAppSchedulePayload: properties: app_schedule: type: object items: properties: status: type: string information: type: string start_at: type: string format: date-time settings: type: object example: app_schedule: status: completed information: Random start_at: '2020-01-01T08:00:00.000Z' settings: {} PackageAuditIndex: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 action: type: string user_email: type: string comment: type: string app_name: type: string app_version: type: string status: type: string api_key_id: type: string created_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer type: type: string example: id: 12345 type: package_audit attributes: id: 12345 action: create user_email: example@corva.com comment: Package is uploaded app_name: App name app_version: 0.0.1 status: published api_key_id: '123' created_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company PackageAudit: properties: data: type: object properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 action: type: string user_email: type: string comment: type: string app_name: type: string app_version: type: string status: type: string api_key_id: type: string created_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer type: type: string included: type: array items: properties: id: type: integer type: type: string attributes: type: object relationships: type: object example: data: id: 12345 type: package_audit attributes: id: 12345 action: create user_email: example@corva.com comment: Package is uploaded app_name: App name app_version: 0.0.1 status: published api_key_id: '123' created_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company included: - id: 12345 type: company attributes: id: 12345 name: Corva PackageAuditList: properties: data: type: array items: $ref: '#/definitions/PackageAuditIndex' included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: - id: 12345 type: package_audit attributes: id: 12345 action: create user_email: example@corva.com comment: Package is uploaded app_name: App name app_version: 0.0.1 status: published api_key_id: 123 created_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company included: - id: 12345 type: company attributes: id: 12345 name: Corva EdrProvider: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 name: type: string link: type: string username: type: string password: type: string provider_type: type: string enum: - witsml - generic metadata: type: object description: Raw provider metadata. May include credentials for generic providers. last_data_received_at: type: string format: date-time created_at: type: string format: date-time updated_at: type: string format: date-time relationships: type: object properties: created_by: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string last_edited_by: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 111 type: edr_provider attributes: id: 111 name: Edr provider link: https://app.corva.ai username: Username password: password provider_type: witsml metadata: witsml_version: '1.4' created_at: '2010-01-01T00:00:00.000Z' updated_at: '2010-01-01T00:00:00.000Z' last_data_received_at: '2010-01-01T00:00:00.000Z' relationships: created_by: data: id: '123' type: user last_edited_by: data: id: '123' type: user EdrProviders: properties: data: type: array items: $ref: '#/definitions/EdrProvider' ApiKeyAuditIndex: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 action: type: string user_email: type: string status: type: string name: type: string created_at: type: string format: date-time relationships: type: object properties: company: type: object properties: data: type: object properties: id: type: integer type: type: string ApiKeyAuditList: properties: data: type: array items: $ref: '#/definitions/ApiKeyAuditIndex' included: type: array items: properties: id: type: integer type: type: string attributes: type: object example: data: - id: 12345 type: api_key_audit attributes: id: 12345 action: create user_email: example@corva.com status: active name: ApiKey name created_at: '2022-11-11T09:11:52.326Z' relationships: company: data: id: 12345 type: company included: - id: 12345 type: company attributes: id: 12345 name: Corva ToolOrderComponent: properties: id: type: integer format: int64 position: type: integer tool_family: type: string tool_type: type: string status: type: string enum: - draft - submitted - in_progress - ready_to_ship - shipped - received_on_rig - cancelled - rejected requested_specs: type: object description: Free-form per tool_family; see GET /v2/tool_ordering/specifications accepted_specs: type: object description: Latest approved specification snapshot, or null effective_specs: type: object description: accepted_specs when present; otherwise requested_specs final_specs: type: object description: As-built specifications supplied by the vendor rejected_at: type: string format: date-time received_at: type: string format: date-time received_by: type: object description: Internal user who recorded receipt; null until received. Vendor payloads contain id and name only. properties: id: type: integer format: int64 email: type: string first_name: type: string last_name: type: string inventory_sync_state: type: string enum: - not_started - pending - synced - failed ToolOrder: properties: id: type: string type: type: string attributes: type: object required: - id - reference_number - status - company_id - vendor_id - asset_id - requester_id properties: id: type: integer format: int64 reference_number: type: string description: Format -<3-digit seq>, e.g. GM2026-007; orders created before the vendor acronym rollout keep the legacy TO--<4-digit seq> form. Unique per company status: type: string enum: - draft - awaiting_acknowledgement - acknowledged - in_progress - ready_to_ship - partially_shipped - shipped - received_on_rig - cancelled - rejected company_id: type: integer format: int64 vendor_id: type: integer format: int64 asset_id: type: integer format: int64 description: The well this order is for requester_id: type: integer format: int64 well_name: type: string rig_name: type: string operator_name: type: string well_api: type: string county: type: string state: type: string hole_size: type: string preferred_trucking: type: string inspection_requirements: type: string order_notes: type: string requested_delivery_date: type: string format: date recipient_user_ids: type: array items: type: integer format: int64 description: Vendor membership user ids selected as new-order email recipients at submission; empty means all eligible recipients submitted_at: type: string format: date-time cancellation_reason: type: string description: Reason supplied when the order was cancelled cancelled_at: type: string format: date-time created_at: type: string format: date-time updated_at: type: string format: date-time vendor_name: type: string components: type: array items: $ref: '#/definitions/ToolOrderComponent' ToolOrderList: properties: data: type: array items: $ref: '#/definitions/ToolOrder' ToolOrderSingle: properties: data: type: object $ref: '#/definitions/ToolOrder' ToolOrderPayload: properties: tool_order: type: object properties: asset_id: type: integer format: int64 description: Create only; the well this order is for vendor_id: type: integer format: int64 well_name: type: string description: Defaults to the asset name when omitted on create rig_name: type: string description: Defaults to the asset's parent rig name when omitted on create operator_name: type: string description: Defaults to the company name when omitted on create well_api: type: string county: type: string state: type: string hole_size: type: string preferred_trucking: type: string inspection_requirements: type: string order_notes: type: string requested_delivery_date: type: string format: date components: type: array description: On update, replaces all components wholesale; omit the key to leave existing components untouched items: properties: tool_family: type: string tool_type: type: string quantity: type: integer description: Expands into that many component rows; defaults to 1 requested_specs: type: object description: Free-form per tool_family; see GET /v2/tool_ordering/specifications ToolOrderingSpecificationField: properties: name: type: string label: type: string type: type: string enum: - text - enum required: type: boolean enum: type: array items: type: string ToolOrderingSpecification: properties: tool_family: type: string fields: type: array items: $ref: '#/definitions/ToolOrderingSpecificationField' constraints: type: object properties: max_quantity: type: integer VendorContact: properties: id: type: integer format: int64 name: type: string email: type: string phone: type: string Vendor: properties: id: type: string type: type: string attributes: type: object required: - id - name - active - company_id properties: id: type: integer format: int64 name: type: string acronym: type: string description: Uppercase 2-6 alphanumerics, unique per company, used as the order reference prefix. Derived from the name when omitted on create active: type: boolean company_id: type: integer format: int64 linked_company_id: type: integer format: int64 phones: type: array items: type: string supported_tool_families: type: array items: type: string created_at: type: string format: date-time updated_at: type: string format: date-time contacts: type: array items: $ref: '#/definitions/VendorContact' members: type: array description: Vendor memberships (active and deactivated) with the member user inlined items: $ref: '#/definitions/VendorMembership' VendorList: properties: data: type: array items: $ref: '#/definitions/Vendor' VendorSingle: properties: data: type: object $ref: '#/definitions/Vendor' VendorPayload: properties: vendor: type: object properties: name: type: string acronym: type: string description: Optional; derived from the name when omitted. Uppercased on write, must be unique per company active: type: boolean description: 'false deactivates the vendor: hidden from the default list and rejected for new orders and contacts, while memberships and order history stay. true reactivates. The name stays reserved, so reactivate instead of recreating' phones: type: array items: type: string supported_tool_families: type: array items: type: string member_user_ids: type: array description: 'Optional. When present, the vendor members are synced to exactly these company user ids: new ones are granted vendor access (membership + vendor_tool_order group), missing ones are deactivated. Requires manage permission on the vendor (company admin) and a named user' items: type: integer format: int64 VendorContactPayload: properties: vendor_contact: type: object required: - name - email properties: vendor_id: type: integer format: int64 description: Existing vendor to attach the contact to vendor_name: type: string description: Find-or-create a vendor by name (case-insensitive) when vendor_id is omitted name: type: string email: type: string phone: type: string VendorContactCreated: properties: data: type: object properties: id: type: integer format: int64 name: type: string email: type: string phone: type: string vendor_id: type: integer format: int64 VendorDirectoryEntry: properties: id: type: integer format: int64 name: type: string email: type: string phone: type: string vendor_name: type: string vendor_id: type: integer format: int64 VendorDirectoryList: properties: data: type: array items: $ref: '#/definitions/VendorDirectoryEntry' DeletedStatus: properties: status: type: string enum: - deleted ChangeProposalComponent: properties: id: type: integer format: int64 position: type: integer tool_family: type: string tool_type: type: string status: type: string enum: - draft - submitted - in_progress - ready_to_ship - shipped - received_on_rig - cancelled - rejected requested_specs: type: object accepted_specs: type: object effective_specs: type: object rejected_at: type: string format: date-time ChangeProposal: properties: id: type: integer format: int64 tool_order_component_id: type: integer format: int64 status: type: string enum: - pending - approved - rejected proposed_changes: type: object description: Server-normalized field diffs in { from, to } form reason: type: string proposer: type: object properties: id: type: integer format: int64 name: type: string decider: type: object properties: id: type: integer format: int64 name: type: string decision_comment: type: string component: type: object $ref: '#/definitions/ChangeProposalComponent' created_at: type: string format: date-time updated_at: type: string format: date-time decided_at: type: string format: date-time ChangeProposalSingle: properties: data: type: object $ref: '#/definitions/ChangeProposal' ChangeProposalList: properties: data: type: array items: $ref: '#/definitions/ChangeProposal' ChangeProposalDecisionSingle: properties: data: type: object $ref: '#/definitions/ChangeProposal' order_status: type: string enum: - draft - awaiting_acknowledgement - acknowledged - in_progress - ready_to_ship - partially_shipped - shipped - received_on_rig - cancelled - rejected ChangeProposalDecisionList: properties: data: type: array items: $ref: '#/definitions/ChangeProposal' order_status: type: string enum: - draft - awaiting_acknowledgement - acknowledged - in_progress - ready_to_ship - partially_shipped - shipped - received_on_rig - cancelled - rejected OrderAttachment: properties: id: type: integer format: int64 tool_order_component_id: type: integer format: int64 description: Null for order-level attachments file_name: type: string content_type: type: string size_bytes: type: integer format: int64 uploaded_by: type: object properties: id: type: integer format: int64 name: type: string download_url: type: string description: Presigned URL, valid for 15 minutes created_at: type: string format: date-time OrderAttachmentSingle: properties: data: type: object $ref: '#/definitions/OrderAttachment' OrderAttachmentList: properties: data: type: array items: $ref: '#/definitions/OrderAttachment' OrderAttachmentPresign: properties: data: type: object properties: signed_url: type: string description: PUT the file body here within 15 minutes, sending required_headers verbatim s3_key: type: string description: Pass back to POST /attachments after the upload required_headers: type: object description: Headers the PUT request must include exactly (they are part of the URL signature); currently only Content-Type OrderAttachmentDeleted: properties: data: type: object properties: id: type: integer format: int64 status: type: string enum: - deleted VendorMembership: properties: id: type: integer format: int64 user_id: type: integer format: int64 user_name: type: string user_email: type: string active: type: boolean receives_notifications: type: boolean deactivated_at: type: string format: date-time VendorMembershipList: properties: data: type: array items: $ref: '#/definitions/VendorMembership' VendorMembershipSingle: properties: data: type: object $ref: '#/definitions/VendorMembership' VendorMembershipCreatePayload: properties: vendor_membership: type: object required: - user_id properties: user_id: type: integer format: int64 description: Must belong to the vendor customer company VendorMembershipUpdatePayload: properties: vendor_membership: type: object properties: active: type: boolean description: false deactivates (revokes access immediately), true reactivates receives_notifications: type: boolean DistributionContact: properties: id: type: integer format: int64 name: type: string email: type: string created_at: type: string format: date-time DistributionContactList: properties: data: type: array items: $ref: '#/definitions/DistributionContact' DistributionContactSingle: properties: data: type: object $ref: '#/definitions/DistributionContact' WellDrilloutUnitRun: properties: id: type: string type: type: string attributes: type: object properties: drillout_unit_id: type: integer format: int64 well_id: type: integer format: int64 created_at: type: string format: date-time updated_at: type: string format: date-time relationships: type: object properties: drillout_unit: type: object properties: data: type: object properties: id: type: string type: type: string well: type: object properties: data: type: object properties: id: type: string type: type: string example: id: '123' type: well_drillout_unit_run attributes: drillout_unit_id: 456 well_id: 789 created_at: '2026-06-02T00:00:00.000Z' updated_at: '2026-06-02T00:00:00.000Z' relationships: drillout_unit: data: id: '456' type: drillout_unit well: data: id: '789' type: well WellDrilloutUnitRunList: properties: data: type: array items: $ref: '#/definitions/WellDrilloutUnitRun' included: type: array items: properties: id: type: string type: type: string attributes: type: object example: data: - id: '123' type: well_drillout_unit_run attributes: drillout_unit_id: 456 well_id: 789 created_at: '2026-06-02T00:00:00.000Z' updated_at: '2026-06-02T00:00:00.000Z' included: [] WellDrilloutUnitRunResponse: properties: data: $ref: '#/definitions/WellDrilloutUnitRun' included: type: array items: properties: id: type: string type: type: string attributes: type: object example: data: id: '123' type: well_drillout_unit_run attributes: drillout_unit_id: 456 well_id: 789 created_at: '2026-06-02T00:00:00.000Z' updated_at: '2026-06-02T00:00:00.000Z' included: [] PadFracFleet: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 current: type: boolean last_current_at: type: string format: date-time created_at: type: string format: date-time updated_at: type: string format: date-time contract_data: type: object relationships: type: object properties: frac_fleet: type: object properties: data: type: object properties: id: type: integer type: type: string pad: type: object properties: data: type: object properties: id: type: integer type: type: string frac_fleet_lines: type: object properties: data: type: object properties: id: type: integer type: type: string example: id: 12345 type: pad_frac_fleet attributes: id: 12345 current: true created_at: '2022-11-11T09:11:52.326Z' updated_at: '2022-11-11T09:11:52.326Z' last_current_at: '2022-11-11T09:11:52.326Z' frac_fleet: id: 234 pad: id: 234 contract_data: something: value relationships: frac_fleet_lines: - id: 555 type: frac_fleet_line CreatePadFracFleetPayload: properties: pad_frac_fleet: type: object properties: frac_fleet_id: type: integer format: int64 pad_id: type: integer format: int64 current: type: boolean example: pad_frac_fleet: frac_fleet_id: 123 pad_id: 333 current: false UpdatePadFracFleetPayload: properties: pad_frac_fleet: type: object properties: current: type: boolean contract_data: type: object example: pad_frac_fleet: current: true contract_data: something: value FracFleetContract: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: id: type: integer format: int64 current: type: boolean data: type: object created_at: type: string format: date-time updated_at: type: string format: date-time example: id: 123 type: frac_fleet_contract attributes: id: 123 current: true data: key: value another_key: another_value created_at: '2020-01-01T08:00:00.000Z' updated_at: '2020-01-01T08:00:00.000Z' FracFleetContractCreatePayload: properties: frac_fleet_contract: type: object properties: current: type: boolean data: type: object example: frac_fleet_contract: current: true data: key: value another_key: another_value FracFleetContractUpdatePayload: properties: frac_fleet_contract: type: object properties: current: type: boolean data: type: object example: frac_fleet_contract: current: true data: key: value another_key: another_value InterventionUnit: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: intervention_type: type: string name: type: string created_at: type: string format: date-time updated_at: type: string format: date-time relationships: type: object properties: program: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string company: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 111 type: intervention_unit attributes: name: Intervention intervention_type: workover created_at: '2010-01-01T00:00:00.000Z' updated_at: '2010-01-01T00:00:00.000Z' relationships: program: data: id: '333' type: program company: data: id: '222' type: company InterventionUnitPayload: properties: name: type: string intervention_type: type: string company_id: type: integer program_id: type: integer example: name: Intervention Unit intervention_type: wireline company_id: 111 program_id: 123 InterventionUnitEvent: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: operation: type: string integration_id: type: string created_at: type: string format: date-time updated_at: type: string format: date-time relationships: type: object properties: intervention_unit: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string well: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 111 type: intervention_unit_event attributes: operation: operation integration_id: 32959483F393D created_at: '2010-01-01T00:00:00.000Z' updated_at: '2010-01-01T00:00:00.000Z' relationships: program: data: id: '333' type: intervention_unit company: data: id: '222' type: well CreateInterventionUnitEventPayload: properties: intervention_unit_id: type: integer operation: type: string integration_id: type: string set_at: type: string format: date-time start_at: type: string format: date-time release_at: type: string format: date-time example: intervention_id: 123 operation: operation integration_id: 32959483F393D set_at: '2010-01-01T00:00:00.000Z' start_at: '2010-01-01T00:00:00.000Z' release_at: '2010-01-01T00:00:00.000Z' UpdateInterventionUnitEventPayload: properties: operation: type: string set_at: type: string format: date-time start_at: type: string format: date-time release_at: type: string format: date-time integration_id: type: string example: operation: operation integration_id: 32959483F393D set_at: '2010-01-01T00:00:00.000Z' start_at: '2010-01-01T00:00:00.000Z' release_at: '2010-01-01T00:00:00.000Z' DataExportWell: properties: well_id: type: integer well_name: type: string company_id: type: integer asset_id: type: integer pad_id: type: integer status: type: string rig_name: type: string pad_name: type: string program_id: type: integer program_name: type: string rig_type: type: string target_formation: type: string string_design: type: string county: type: string basin: type: string area: type: string latitude: type: number longitude: type: number api_number: type: string rig_up: type: string rig_release: type: string spud: type: string last_active: type: string format: date-time metrics: type: object drillstrings: type: object completion_stage: type: object completion_pad: type: object example: well_id: 123 well_name: Test Well company_id: 1 asset_id: 456 pad_id: 1 status: active rig_name: Rig A pad_name: Pad A program_id: 43451 program_name: Program A rig_type: Land target_formation: Spraberry string_design: '3' county: Lee basin: Delaware area: Midland latitude: 31.456 longitude: -103.123 api_number: '1234567890' rig_up: 03/13/2025 20:00 rig_release: 05/12/2025 05:02 spud: 03/15/2025 05:02 last_active: '2023-12-01T10:00:00Z' metrics: well_section: - mud_type: Oil-based well_section: Surface asset: - casing_count: 3 bha: - bha_id: 2 bit_depth: 12345 well_sections: - Surface hole_size: 8.5 drillstrings: start_depth: 1000 end_depth: 2000 bit_tfa: 1.16 completion_stage: - average_proppant_concentration: 1.049 completion_pad: - fracture_gradient: 0.65 hydraulic_power: 1054000 DataExportWellList: properties: data: type: array items: $ref: '#/definitions/DataExportWell' total_count: type: integer current_total: type: integer example: data: - well_id: 123 well_name: Test Well company_id: 1 asset_id: 456 pad_id: 1 status: active rig_name: Rig A pad_name: Pad A program_id: 43451 program_name: Program A rig_type: Land target_formation: Spraberry string_design: '3' county: Lee basin: Delaware area: Midland latitude: 31.456 longitude: -103.123 api_number: '1234567890' rig_up: 03/13/2025 05:02 rig_release: 05/12/2025 05:02 spud: 03/15/2025 05:02 last_active: '2023-12-01T10:00:00Z' metrics: well_section: - mud_type: Oil-based well_section: Surface start_depth: 1763 end_depth: 5751 asset: - casing_count: 3 bha: - bha_id: 2 bit_depth: 12345 well_sections: - Surface hole_size: 8.5 drillstrings: start_depth: 1000 end_depth: 2000 bit_tfa: 1.16 completion_stage: - average_proppant_concentration: 1.049 completion_pad: - fracture_gradient: 0.65 hydraulic_power: 1054000 total_count: 10 current_total: 5 ActivityCodeMapping: properties: activity_code_type: type: string description: Custom display name for the activity code mapped_activity_code_type: type: string description: Internal Corva code(SUB_CODE_1, SUB_CODE_2, etc.) example: activity_code_type: Phase mapped_activity_code_type: SUB_CODE_1 ActivityCodeMappingsList: properties: data: type: array items: $ref: '#/definitions/ActivityCodeMapping' example: data: - activity_code_type: Phase mapped_activity_code_type: SUB_CODE_1 - activity_code_type: Code 1 mapped_activity_code_type: SUB_CODE_2 - activity_code_type: Code 2 mapped_activity_code_type: SUB_CODE_3 - activity_code_type: NPT mapped_activity_code_type: SUB_CODE_5 MetricDefinition: properties: name: type: string description: Human-readable metric label unit: type: string description: Source unit as stored in corva#metrics (e.g., "s", "hr") fe_data: type: object description: 'FE rendering config: category, display unit, ILT settings' visibility: type: string enum: - visible - hidden status: type: string enum: - active - inactive example: name: NU/ND BOPs & Flowline Time unit: s fe_data: category_name: Flat Time Metrics category_id: FLAT_TIME_METRICS main_app_unit: hr ilt_data: category_id: flat_time_group unit_type: time icon: TimelogIcon color: '#FF93BA' from_unit: s to_unit: h deviation_calc_type: negative_time_good visibility: visible status: active MetricsDefinitionsGroup: properties: status: type: string description: Group status (active/inactive) usage_rules: type: array description: Optional rules for matching wells (e.g., by program name). Absent when the group applies unconditionally. items: type: object metrics_definitions: type: object description: Map of metric key to its definition $ref: '#/definitions/MetricDefinition' example: status: active usage_rules: - type: assetProgramName matched_values: - Permian - Permian MRO metrics_definitions: nu_nd_bops_flowline_timelog_cop_permian: name: NU/ND BOPs & Flowline Time unit: s fe_data: category_name: Flat Time Metrics category_id: FLAT_TIME_METRICS main_app_unit: hr visibility: visible status: active MetricsDefinitionsSegment: properties: segment: type: string description: Domain segment (e.g., "drilling", "completion") timestamp: type: integer description: Unix timestamp of the source document metrics_groups: type: array items: $ref: '#/definitions/MetricsDefinitionsGroup' example: segment: drilling timestamp: 1764005687 metrics_groups: - status: active metrics_definitions: pu_bha_diamondback: name: PU BHA unit: hr fe_data: category_name: Flat Time Metrics category_id: FLAT_TIME_METRICS main_app_unit: hr visibility: visible status: active MetricsDefinitionsList: properties: data: type: array description: One entry per segment (latest document per segment) items: $ref: '#/definitions/MetricsDefinitionsSegment' example: data: - segment: drilling timestamp: 1764005687 metrics_groups: - status: active metrics_definitions: pu_bha_diamondback: name: PU BHA unit: hr fe_data: category_name: Flat Time Metrics category_id: FLAT_TIME_METRICS main_app_unit: hr ilt_data: category_id: flat_time_group unit_type: time icon: TimelogIcon color: '#FF93BA' from_unit: s to_unit: h deviation_calc_type: negative_time_good visibility: visible status: active DataExportFlatItem: properties: id: type: string description: Unique identifier(e.g., bha_123_456_1) type: type: string enum: - bha - well_section - well - mud description: Item type attributes: type: object description: Item-specific attributes(metrics, drillstring data, etc.) relationships: type: object properties: well: type: object properties: id: type: integer description: Well ID reference example: id: bha_123_456_2 type: bha attributes: bha_id: 2 bit_depth: 12345 hole_size: 8.5 well_sections: - Surface start_depth: 1000 end_depth: 2000 relationships: well: id: 123 DataExportIncludedWell: properties: id: type: integer description: Well ID type: type: string enum: - well description: Always "well" attributes: type: object properties: name: type: string asset_id: type: integer company_id: type: integer status: type: string rig_name: type: string pad_name: type: string program_name: type: string area: type: string county: type: string basin: type: string latitude: type: number longitude: type: number example: id: 123 type: well attributes: name: Test Well asset_id: 456 company_id: 1 status: active rig_name: Rig A pad_name: Pad A program_name: Program A area: Midland county: Lee basin: Delaware latitude: 31.456 longitude: -103.123 DataExportFlatMeta: properties: total_count: type: integer description: Total items before filters (static across pages) filtered_count: type: integer description: Items after filters applied (dynamic) has_more: type: boolean description: Whether more pages exist page: type: integer description: Current page number per_page: type: integer description: Items per page example: total_count: 150 filtered_count: 45 has_more: true page: 1 per_page: 80 DataExportFlatResponse: properties: data: type: array description: Flat array of items - array order IS sort order items: $ref: '#/definitions/DataExportFlatItem' included: type: array description: Deduplicated well data referenced by items items: $ref: '#/definitions/DataExportIncludedWell' meta: type: object $ref: '#/definitions/DataExportFlatMeta' example: data: - id: bha_123_456_2 type: bha attributes: bha_id: 2 bit_depth: 12345 hole_size: 8.5 relationships: well: id: 123 - id: bha_124_457_1 type: bha attributes: bha_id: 1 bit_depth: 8500 hole_size: 12.25 relationships: well: id: 124 included: - id: 123 type: well attributes: name: Well A asset_id: 456 status: active - id: 124 type: well attributes: name: Well B asset_id: 457 status: drilling meta: total_count: 150 filtered_count: 45 has_more: true page: 1 per_page: 80 Country: properties: label: type: string value: type: string example: label: United States value: United States CountryList: properties: data: type: array items: $ref: '#/definitions/Country' InterventionUnitRerun: properties: id: type: integer format: int64 type: type: string attributes: type: object properties: name: type: string created_by: type: string created_at: type: string format: date-time updated_at: type: string format: date-time relationships: type: object properties: intervention_unit: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string intervention_unit_event: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string app_stream: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string well: type: object properties: data: type: object properties: id: type: integer format: int64 type: type: string example: id: 111 type: intervention_unit_rerun attributes: name: Rerun Test created_by: user@corva.ai created_at: '2010-01-01T00:00:00.000Z' updated_at: '2010-01-01T00:00:00.000Z' relationships: intervention_unit: data: id: '333' type: intervention_unit intervention_unit_event: data: id: '444' type: intervention_unit_event app_stream: data: id: '555' type: app_stream well: data: id: '222' type: well CreateInterventionUnitRerunPayload: properties: app_stream_id: type: integer required: true new_app_stream_status: type: string required: true intervention_unit_rerun: type: object properties: name: type: string example: intervention_unit_event_id: 123 app_stream_id: 456 new_app_stream_status: active intervention_unit_rerun: name: My Rerun