{
  "swagger": "2.0",
  "info": {
    "title": "Infoblox Lab Service API",
    "version": "v1"
  },
  "tags": [
    {
      "name": "LabFeatureService"
    },
    {
      "name": "WatchlistFeatureService"
    },
    {
      "name": "LabsTabViewAuditService"
    }
  ],
  "basePath": "/ib-labs/v1/",
  "schemes": [
    "https"
  ],
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "paths": {
    "/api/lab/feature/{id.resource_id}": {
      "get": {
        "summary": "Retrieve a single lab feature by ID",
        "description": "Returns detailed information about a specific lab feature including its activation status for the current account, available_until date in ISO 8601 format, and whether the user previously expressed interest during the watchlist stage.",
        "operationId": "LabFeatureService_Read",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/serviceReadLabFeatureResponse",
              "additionalProperties": null
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus",
              "additionalProperties": null
            }
          }
        },
        "parameters": [
          {
            "name": "id.resource_id",
            "description": "An application specific resource identity of a resource",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "id",
            "description": "atlas.api.identifier",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "LabFeatureService"
        ]
      }
    },
    "/api/lab/feature/{id.resource_id}/activate": {
      "patch": {
        "summary": "Activate a lab feature for the current account",
        "description": "Enables a lab feature for the user's account. Creates a LabFeatureActivation record and applies account labels via Identity Service. If transition_delay is configured, status transitions to activating before becoming activated. Returns the updated LabFeatureView with the new activation_status.",
        "operationId": "LabFeatureService_Activate",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/serviceActivateFeatureResponse",
              "additionalProperties": null
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus",
              "additionalProperties": null
            }
          }
        },
        "parameters": [
          {
            "name": "id.resource_id",
            "description": "An application specific resource identity of a resource",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/serviceActivateFeatureRequest",
              "additionalProperties": null
            }
          }
        ],
        "tags": [
          "LabFeatureService"
        ]
      }
    },
    "/api/lab/feature/{id.resource_id}/deactivate": {
      "patch": {
        "summary": "Deactivate a lab feature for the current account",
        "description": "Disables a lab feature for the user's account. Removes the account label via Identity Service and updates the LabFeatureActivation record. If transition_delay is configured, status transitions to deactivating before becoming deactivated.",
        "operationId": "LabFeatureService_Deactivate",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/serviceDeactivateFeatureResponse",
              "additionalProperties": null
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus",
              "additionalProperties": null
            }
          }
        },
        "parameters": [
          {
            "name": "id.resource_id",
            "description": "An application specific resource identity of a resource",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/serviceDeactivateFeatureRequest",
              "additionalProperties": null
            }
          }
        ],
        "tags": [
          "LabFeatureService"
        ]
      }
    },
    "/api/lab/feature/{id.resource_id}/view": {
      "post": {
        "summary": "Record that the user has viewed a lab feature",
        "description": "Creates or updates a LabFeatureUserView record to track that the current user has seen the specified lab feature. Used to suppress the New badge in the UI after a user views feature details.",
        "operationId": "LabFeatureService_CreateLabFeatureUserView",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/serviceCreateLabFeatureUserViewResponse",
              "additionalProperties": null
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus",
              "additionalProperties": null
            }
          }
        },
        "parameters": [
          {
            "name": "id.resource_id",
            "description": "An application specific resource identity of a resource",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/serviceCreateLabFeatureUserViewRequest",
              "additionalProperties": null
            }
          }
        ],
        "tags": [
          "LabFeatureService"
        ]
      }
    },
    "/api/lab/features": {
      "get": {
        "summary": "List lab stage features for the current account",
        "description": "Returns a paginated list of features in the lab lifecycle stage that are visible to the current user's account. Filter by status (active, inactive), product_category (AI, Assets, Network, Platform, Security, Others), or application name. Results include activation_status per account and user_has_seen indicator.",
        "operationId": "LabFeatureService_List",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/serviceListLabFeatureResponse",
              "additionalProperties": null
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus",
              "additionalProperties": null
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "description": "atlas.api.filtering",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "order_by",
            "description": "atlas.api.sorting",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "description": "atlas.api.field_selection",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "paging",
            "description": "atlas.api.paging",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "LabFeatureService"
        ]
      }
    },
    "/api/labs/ui/tab/view": {
      "get": {
        "summary": "Retrieve Labs tab view record for current user",
        "description": "Returns the LabsTabViewAudit record for the current user if it exists, indicating when they first viewed the Labs tab. created_at is in ISO 8601 format.",
        "operationId": "LabsTabViewAuditService_Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/serviceGetLabsTabViewAuditResponse",
              "additionalProperties": null
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus",
              "additionalProperties": null
            }
          }
        },
        "tags": [
          "LabsTabViewAuditService"
        ]
      },
      "post": {
        "summary": "Record a Labs tab view for analytics",
        "description": "Creates a LabsTabViewAudit record when the current user views the Labs tab. Account ID, CSP ID, and user details are extracted from the auth context. created_at is recorded in ISO 8601 format.",
        "operationId": "LabsTabViewAuditService_Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/serviceCreateLabsTabViewAuditResponse",
              "additionalProperties": null
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus",
              "additionalProperties": null
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/serviceCreateLabsTabViewAuditRequest",
              "additionalProperties": null
            }
          }
        ],
        "tags": [
          "LabsTabViewAuditService"
        ]
      }
    },
    "/api/watchlist/feature/{id.resource_id}": {
      "get": {
        "summary": "Retrieve a single watchlist feature by ID",
        "description": "Returns detailed information about a specific watchlist feature including its form_input_schema, required_entitlements, and whether the current user has expressed interest. published_at is in ISO 8601 format.",
        "operationId": "WatchlistFeatureService_Read",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/serviceReadWatchlistFeatureResponse",
              "additionalProperties": null
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus",
              "additionalProperties": null
            }
          }
        },
        "parameters": [
          {
            "name": "id.resource_id",
            "description": "An application specific resource identity of a resource",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "id",
            "description": "atlas.api.identifier",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "WatchlistFeatureService"
        ]
      }
    },
    "/api/watchlist/feature/{lab_feature_id.resource_id}/interest": {
      "get": {
        "summary": "Check current user's interest in a watchlist feature",
        "description": "Returns whether the current user has expressed interest in the specified watchlist feature. If interest exists, includes the full WatchlistFeatureInterestView with form_input data and expressed_at timestamp in ISO 8601 format.",
        "operationId": "WatchlistFeatureService_GetCurrentUserInterest",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/serviceGetCurrentUserWatchlistInterestResponse",
              "additionalProperties": null
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus",
              "additionalProperties": null
            }
          }
        },
        "parameters": [
          {
            "name": "lab_feature_id.resource_id",
            "description": "An application specific resource identity of a resource",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "lab_feature_id",
            "description": "atlas.api.identifier",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "WatchlistFeatureService"
        ]
      },
      "delete": {
        "summary": "Remove interest from a watchlist feature",
        "description": "Removes the current user's previously expressed interest in a watchlist stage feature. Sets is_active to false and records removed_at timestamp in ISO 8601 format. The interest record is preserved for analytics.",
        "operationId": "WatchlistFeatureService_RemoveInterest",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/serviceRemoveWatchlistInterestResponse",
              "additionalProperties": null
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus",
              "additionalProperties": null
            }
          }
        },
        "parameters": [
          {
            "name": "lab_feature_id.resource_id",
            "description": "An application specific resource identity of a resource",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "lab_feature_id",
            "description": "atlas.api.identifier",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "WatchlistFeatureService"
        ]
      },
      "post": {
        "summary": "Express interest in a watchlist feature",
        "description": "Records the current user's interest in a watchlist stage feature. Creates a WatchlistFeatureInterest record with the user's form_input data matching the feature's form_input_schema. Account ID, user ID, and email are extracted from the auth context.",
        "operationId": "WatchlistFeatureService_ExpressInterest",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/serviceExpressWatchlistInterestResponse",
              "additionalProperties": null
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus",
              "additionalProperties": null
            }
          }
        },
        "parameters": [
          {
            "name": "lab_feature_id.resource_id",
            "description": "An application specific resource identity of a resource",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/serviceExpressWatchlistInterestRequest",
              "additionalProperties": null
            }
          }
        ],
        "tags": [
          "WatchlistFeatureService"
        ]
      }
    },
    "/api/watchlist/features": {
      "get": {
        "summary": "List watchlist stage features for the current account",
        "description": "Returns a paginated list of features in the watchlist lifecycle stage visible to the current user's account. Filter by status (active, inactive) or product_category (AI, Assets, Network, Platform, Security, Others). Results include the user's interest status and form_input_schema for expressing interest.",
        "operationId": "WatchlistFeatureService_List",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/serviceListWatchlistFeatureResponse",
              "additionalProperties": null
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/rpcStatus",
              "additionalProperties": null
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "description": "atlas.api.filtering",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "order_by",
            "description": "atlas.api.sorting",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "description": "atlas.api.field_selection",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "paging",
            "description": "atlas.api.paging",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "WatchlistFeatureService"
        ]
      }
    }
  },
  "definitions": {
    "apiPageInfo": {
      "type": "object",
      "properties": {
        "page_token": {
          "type": "string",
          "additionalProperties": null,
          "description": "The service response should contain a string to indicate\nthe next page of resources.\nA null value indicates no more pages."
        },
        "size": {
          "type": "integer",
          "format": "int32",
          "additionalProperties": null,
          "description": "The service may optionally include the total number of resources being paged."
        },
        "offset": {
          "type": "integer",
          "format": "int32",
          "additionalProperties": null,
          "description": "The service may optionally include the offset of the next page of resources.\nA null value indicates no more pages."
        }
      },
      "additionalProperties": null,
      "description": "PageInfo represents both server-driven and client-driven pagination response.\nServer-driven pagination is a model in which the server returns some\namount of data along with an token indicating there is more data\nand where subsequent queries can get the next page of data.\nClient-driven pagination is a model in which rows are addressable by\noffset and page size (limit)."
    },
    "protobufAny": {
      "type": "object",
      "properties": {
        "@type": {
          "type": "string",
          "additionalProperties": null
        }
      },
      "additionalProperties": {
        "additionalProperties": null
      }
    },
    "rpcStatus": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "additionalProperties": null
        },
        "message": {
          "type": "string",
          "additionalProperties": null
        },
        "details": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/protobufAny"
          },
          "additionalProperties": null
        }
      },
      "additionalProperties": null
    },
    "serviceActivateFeatureRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "additionalProperties": null,
          "description": "atlas.api.identifier"
        }
      },
      "additionalProperties": null
    },
    "serviceActivateFeatureResponse": {
      "type": "object",
      "properties": {
        "result": {
          "$ref": "#/definitions/serviceLabFeatureView",
          "additionalProperties": null
        }
      },
      "additionalProperties": null
    },
    "serviceCreateLabFeatureUserViewRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "additionalProperties": null,
          "description": "atlas.api.identifier"
        }
      },
      "additionalProperties": null
    },
    "serviceCreateLabFeatureUserViewResponse": {
      "type": "object",
      "properties": {
        "result": {
          "$ref": "#/definitions/serviceLabFeatureUserView",
          "additionalProperties": null
        }
      },
      "additionalProperties": null
    },
    "serviceCreateLabsTabViewAuditRequest": {
      "type": "object",
      "additionalProperties": null
    },
    "serviceCreateLabsTabViewAuditResponse": {
      "type": "object",
      "properties": {
        "result": {
          "$ref": "#/definitions/serviceLabsTabViewAudit",
          "additionalProperties": null
        }
      },
      "additionalProperties": null
    },
    "serviceDeactivateFeatureRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "additionalProperties": null,
          "description": "atlas.api.identifier"
        }
      },
      "additionalProperties": null
    },
    "serviceDeactivateFeatureResponse": {
      "type": "object",
      "properties": {
        "result": {
          "$ref": "#/definitions/serviceLabFeatureView",
          "additionalProperties": null
        }
      },
      "additionalProperties": null
    },
    "serviceExpressWatchlistInterestRequest": {
      "type": "object",
      "properties": {
        "lab_feature_id": {
          "type": "string",
          "additionalProperties": null,
          "description": "atlas.api.identifier"
        },
        "form_input": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/serviceFormInputItem"
          },
          "additionalProperties": null,
          "title": "Note: account_id, user_id, and user_email will be extracted from auth context in backend\nUser-provided values for form input fields defined in the watchlist stage feature schema"
        }
      },
      "additionalProperties": null,
      "title": "Watchlist Feature Interest Request/Response Messages"
    },
    "serviceExpressWatchlistInterestResponse": {
      "type": "object",
      "properties": {
        "result": {
          "$ref": "#/definitions/serviceWatchlistFeatureInterestView",
          "additionalProperties": null
        }
      },
      "additionalProperties": null
    },
    "serviceFormInputItem": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "additionalProperties": null
        },
        "description": {
          "type": "string",
          "additionalProperties": null
        },
        "is_required": {
          "type": "boolean",
          "additionalProperties": null
        },
        "value": {
          "type": "string",
          "additionalProperties": null
        }
      },
      "additionalProperties": null,
      "title": "FormInputItem defines the schema for a single form input field\nthat can be requested from users when expressing interest in a watchlist stage feature"
    },
    "serviceGetCurrentUserWatchlistInterestResponse": {
      "type": "object",
      "properties": {
        "interest": {
          "type": "boolean",
          "additionalProperties": null
        },
        "result": {
          "$ref": "#/definitions/serviceWatchlistFeatureInterestView",
          "additionalProperties": null
        }
      },
      "additionalProperties": null
    },
    "serviceGetLabsTabViewAuditResponse": {
      "type": "object",
      "properties": {
        "result": {
          "$ref": "#/definitions/serviceLabsTabViewAudit",
          "additionalProperties": null
        }
      },
      "additionalProperties": null
    },
    "serviceLabFeature": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "additionalProperties": null,
          "description": "atlas.api.identifier"
        },
        "lifecycle_stage": {
          "type": "string",
          "additionalProperties": null
        },
        "feature_name": {
          "type": "string",
          "additionalProperties": null
        },
        "application": {
          "type": "string",
          "additionalProperties": null
        },
        "namespace": {
          "type": "string",
          "additionalProperties": null
        },
        "title": {
          "type": "string",
          "additionalProperties": null
        },
        "description": {
          "type": "string",
          "additionalProperties": null
        },
        "product_category": {
          "type": "string",
          "additionalProperties": null
        },
        "status": {
          "type": "string",
          "additionalProperties": null
        },
        "form_input_schema": {
          "type": "string",
          "additionalProperties": null,
          "title": "Schema defining what form input fields to collect from users expressing interest"
        },
        "required_entitlements": {
          "type": "string",
          "additionalProperties": null
        },
        "short_description": {
          "type": "string",
          "additionalProperties": null
        },
        "transition_delay": {
          "type": "string",
          "additionalProperties": null
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "additionalProperties": null,
          "description": "Read-only. Timestamp created_at, equals to time when feature was created."
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "additionalProperties": null,
          "description": "Read-only. Timestamp updated_at, equals to time when feature was updated, by default equals to created_at."
        },
        "deleted_at": {
          "type": "string",
          "format": "date-time",
          "additionalProperties": null,
          "description": "Read-only. Timestamp deleted_at, equals to time when feature was deleted."
        },
        "product_type": {
          "type": "string",
          "additionalProperties": null
        },
        "promoted_at": {
          "type": "string",
          "format": "date-time",
          "additionalProperties": null
        },
        "released_at": {
          "type": "string",
          "format": "date-time",
          "additionalProperties": null
        },
        "feature_link": {
          "type": "string",
          "additionalProperties": null
        },
        "available_until": {
          "type": "string",
          "format": "date-time",
          "additionalProperties": null
        },
        "published_at": {
          "type": "string",
          "format": "date-time",
          "additionalProperties": null
        },
        "allowed_csp_ids": {
          "type": "string",
          "additionalProperties": null
        }
      },
      "additionalProperties": null,
      "title": "LabFeature represents a feature in the labs service"
    },
    "serviceLabFeatureUserView": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "additionalProperties": null,
          "description": "atlas.api.identifier"
        },
        "lab_feature_id": {
          "type": "string",
          "additionalProperties": null,
          "description": "atlas.api.identifier"
        },
        "user_id": {
          "type": "string",
          "additionalProperties": null
        },
        "user_has_seen": {
          "type": "boolean",
          "additionalProperties": null
        },
        "last_seen_at": {
          "type": "string",
          "format": "date-time",
          "additionalProperties": null
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "additionalProperties": null
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "additionalProperties": null
        },
        "deleted_at": {
          "type": "string",
          "format": "date-time",
          "additionalProperties": null
        },
        "account_id": {
          "type": "string",
          "additionalProperties": null
        }
      },
      "additionalProperties": null,
      "title": "Lab Feature User View to track if user has seen a lab feature"
    },
    "serviceLabFeatureView": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "additionalProperties": null
        },
        "feature_name": {
          "type": "string",
          "additionalProperties": null
        },
        "title": {
          "type": "string",
          "additionalProperties": null
        },
        "description": {
          "type": "string",
          "additionalProperties": null
        },
        "product_category": {
          "type": "string",
          "additionalProperties": null
        },
        "activation_status": {
          "type": "string",
          "additionalProperties": null
        },
        "short_description": {
          "type": "string",
          "additionalProperties": null
        },
        "status": {
          "type": "string",
          "additionalProperties": null
        },
        "user_has_seen": {
          "type": "boolean",
          "additionalProperties": null
        },
        "required_entitlements": {
          "type": "string",
          "additionalProperties": null
        },
        "was_interested": {
          "type": "boolean",
          "additionalProperties": null
        },
        "feature_link": {
          "type": "string",
          "additionalProperties": null
        },
        "available_until": {
          "type": "string",
          "format": "date-time",
          "additionalProperties": null
        },
        "published_at": {
          "type": "string",
          "format": "date-time",
          "additionalProperties": null
        },
        "activated_at": {
          "type": "string",
          "format": "date-time",
          "additionalProperties": null
        },
        "deactivated_at": {
          "type": "string",
          "format": "date-time",
          "additionalProperties": null
        },
        "can_activate": {
          "type": "boolean",
          "additionalProperties": null
        }
      },
      "additionalProperties": null,
      "title": "LabFeatureView is a brief view for a feature in the lab stage"
    },
    "serviceLabsTabViewAudit": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "additionalProperties": null,
          "readOnly": true
        },
        "account_id": {
          "type": "string",
          "additionalProperties": null
        },
        "csp_id": {
          "type": "string",
          "additionalProperties": null
        },
        "sfdc_account_id": {
          "type": "string",
          "additionalProperties": null
        },
        "user_id": {
          "type": "string",
          "additionalProperties": null
        },
        "user_email": {
          "type": "string",
          "additionalProperties": null
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "additionalProperties": null
        }
      },
      "additionalProperties": null,
      "title": "Audit log for Labs Tab views by a user"
    },
    "serviceListLabFeatureResponse": {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/serviceLabFeatureView"
          },
          "additionalProperties": null
        },
        "page": {
          "$ref": "#/definitions/apiPageInfo",
          "additionalProperties": null
        }
      },
      "additionalProperties": null
    },
    "serviceListWatchlistFeatureResponse": {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/serviceWatchlistFeatureView"
          },
          "additionalProperties": null
        },
        "page": {
          "$ref": "#/definitions/apiPageInfo",
          "additionalProperties": null
        }
      },
      "additionalProperties": null
    },
    "serviceReadLabFeatureResponse": {
      "type": "object",
      "properties": {
        "result": {
          "$ref": "#/definitions/serviceLabFeatureView",
          "additionalProperties": null
        }
      },
      "additionalProperties": null
    },
    "serviceReadWatchlistFeatureResponse": {
      "type": "object",
      "properties": {
        "result": {
          "$ref": "#/definitions/serviceLabFeature",
          "additionalProperties": null
        },
        "interest": {
          "type": "boolean",
          "additionalProperties": null
        }
      },
      "additionalProperties": null
    },
    "serviceRemoveWatchlistInterestResponse": {
      "type": "object",
      "additionalProperties": null
    },
    "serviceWatchlistFeatureInterestView": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "additionalProperties": null
        },
        "lab_feature_id": {
          "type": "string",
          "additionalProperties": null
        },
        "account_id": {
          "type": "string",
          "additionalProperties": null
        },
        "sfdc_account_id": {
          "type": "string",
          "additionalProperties": null
        },
        "csp_id": {
          "type": "string",
          "additionalProperties": null
        },
        "user_id": {
          "type": "string",
          "additionalProperties": null
        },
        "user_email": {
          "type": "string",
          "additionalProperties": null
        },
        "is_active": {
          "type": "boolean",
          "additionalProperties": null
        },
        "expressed_at": {
          "type": "string",
          "format": "date-time",
          "additionalProperties": null
        },
        "removed_at": {
          "type": "string",
          "format": "date-time",
          "additionalProperties": null
        },
        "form_input": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/serviceFormInputItem"
          },
          "additionalProperties": null,
          "title": "User-provided values for form input fields"
        }
      },
      "additionalProperties": null,
      "title": "WatchlistFeatureInterestView is a brief view for interest in feature in watchlist stage"
    },
    "serviceWatchlistFeatureView": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "additionalProperties": null
        },
        "feature_name": {
          "type": "string",
          "additionalProperties": null
        },
        "title": {
          "type": "string",
          "additionalProperties": null
        },
        "description": {
          "type": "string",
          "additionalProperties": null
        },
        "product_category": {
          "type": "string",
          "additionalProperties": null
        },
        "status": {
          "type": "string",
          "additionalProperties": null
        },
        "short_description": {
          "type": "string",
          "additionalProperties": null
        },
        "interest": {
          "type": "boolean",
          "additionalProperties": null
        },
        "form_input_schema": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/serviceFormInputItem"
          },
          "additionalProperties": null,
          "title": "Schema defining what form input fields to collect from users"
        },
        "required_entitlements": {
          "type": "string",
          "additionalProperties": null
        },
        "published_at": {
          "type": "string",
          "format": "date-time",
          "additionalProperties": null
        }
      },
      "additionalProperties": null,
      "title": "WatchlistFeatureView is a brief view for feature in watchlist stage"
    }
  },
  "securityDefinitions": {
    "ApiKeyAuth": {
      "type": "apiKey",
      "name": "Authorization",
      "in": "header"
    }
  },
  "security": [
    {
      "ApiKeyAuth": []
    }
  ]
}
