--- openapi: 3.0.3 info: title: List Service description: List Service version: 20240326154404-e5260aa security: - bearerAuth: [] - apiKeyAuth: [] tags: - name: List Definition description: Operations on List Definitions - name: Column Definition - name: List - name: List Items paths: /list-svc/v1/tenants/{tenantId}/list-definitions: get: tags: - List Definition summary: Retrieve all List Definition for tenant description: "* Get a paged list of List Definitions by tenant id.\n* `tenantId`:\ \ (required) The tenant for which to retrieve List Definitions.\n* Default\ \ sort is `updatedOn` descending.\n* Supported sort fields are `id`, `title`,\ \ `description`, `retired`, `dataStrategy`, `createdBy`, `updatedBy`, `createdOn`,\ \ `updatedOn`, `entryCount`.\n* This method will return 401 for unauthenticated\ \ users. \n* This method will return 403 for authenticated users who request\ \ a forbidden resource. \n" parameters: - name: tenantId in: path description: The identifier of the tenant required: true schema: type: string - name: afterId in: query description: "The id of the item prior to the items you would like returned.\ \ A not present, or empty value means you want to start with the first result." schema: type: string example: 0f54a194-d75a-4a60-8c68-d4b8e66c971c - name: limit in: query description: The maximum number of results that a response page can contain. schema: format: int32 default: 10 type: integer - name: showRetired in: query description: Boolean to filter out inactive list definitions. Defaults to displaying active and inactive list definitions schema: type: boolean example: true - name: sort in: query description: The order you would like the results in. example: field:asc responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/SeekPageResponseListDefinition' post: tags: - List Definition summary: Create a List Definition description: "* Create List Definition and its associated metadata.\n* `tenantId`:\ \ (required) The tenant associated with the List Definition to create.\n*\ \ `listDefinition`: (request body) A List Definition to create.\n* List Definitions\ \ are not a container for list items, rather a specification of the columns/\ \ items that compose the list.\n* This method will return 400 upon receiving\ \ an invalid request. \n* This method will return 401 for unauthenticated\ \ users. \n* This method will return 403 for authenticated users who request\ \ a forbidden resource. \n" parameters: - name: tenantId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ListDefinition' responses: "201": description: Created /list-svc/v1/tenants/{tenantId}/list-definitions/byColumnTypeAndTitlePattern: get: tags: - List Definition summary: Retrieve List Definitions by Column Type and Title Pattern description: "* Returns List Definitions matching the requested Column Type\ \ and Title Pattern.\n* Default sort is `updatedOn` descending.\n* Supported\ \ sort fields are `id`, `title`, `description`, `retired`, `dataStrategy`,\ \ `createdBy`, `updatedBy`, `createdOn`, `updatedOn`, `entryCount`.\n* This\ \ method will return 401 for unauthenticated users. \n* This method will return\ \ 403 for authenticated users who request a forbidden resource. \n" parameters: - name: tenantId in: path description: The identifier of the tenant required: true schema: type: string - name: afterId in: query description: "The id of the item prior to the items you would like returned.\ \ A not present, or empty value means you want to start with the first result." schema: type: string example: 0f54a194-d75a-4a60-8c68-d4b8e66c971c - name: columnType in: query description: List Definitions with at least one column of the specified Type will be returned required: true schema: $ref: '#/components/schemas/ColumnType' example: IP - name: limit in: query description: The maximum number of results that a response page can contain. schema: format: int32 default: 10 type: integer - name: showRetired in: query description: Boolean to filter out inactive list definitions. Defaults to displaying active and inactive list definitions schema: type: boolean example: true - name: sort in: query description: The order you would like the results in. example: field:asc - name: titlePattern in: query description: |- * The pattern a list definition's title must match in order for that entity to be returned * Use `%` to specify wildcard sequences. For example, `%my title%`. Will match any title which contains the phrase `my title` * Left anchored patterns (ex. 'th%') are the most performant using Postgres indexes. * Pattern must contain a minimum of 2 characters, and maximum of 10. required: true schema: type: string example: '%ea%' responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/SeekPageResponseListDefinition' ? /list-svc/v1/tenants/{tenantId}/list-definitions/byListTitleAndColumnTypeAndListCreatorAndLastUpdatedAndDateCreatedAndEntriesCount : get: tags: - List Definition summary: "Retrieve a paginated list of List Definitions matching a combination\ \ of title pattern, column type, list creator, created date, last updated\ \ date, and/or entry count." description: "* Returns a paginated list of List Definitions matching the requested\ \ title pattern, column type, list creator, created date, last updated date,\ \ and/or entry count.\n* Default sort is `updatedOn` descending.\n* Supported\ \ sort fields are `id`, `title`, `description`, `retired`, `dataStrategy`,\ \ `createdBy`, `updatedBy`, `createdOn`, `updatedOn`, `entryCount`.\n* This\ \ method will return 401 for unauthenticated users. \n* This method will return\ \ 403 for authenticated users who request a forbidden resource. \n" parameters: - name: tenantId in: path description: The identifier of the tenant required: true schema: type: string - name: afterId in: query description: "The id of the item prior to the items you would like returned.\ \ A not present, or empty value means you want to start with the first result." schema: type: string example: 0f54a194-d75a-4a60-8c68-d4b8e66c971c - name: columnTypeFilter in: query description: |- * Pattern that must exist in the Column Type. * Valid Operators are: contains, notContains, startsWith, endsWith, equal, notEqual schema: type: string example: equal:IP - name: createdByFilter in: query description: |- * Pattern that must exist in CreatedBy. * Valid Operators are: contains, notContains, startsWith, endsWith, equal, notEqual schema: type: string example: startsWith:1da4ex-1234 - name: createdOnFilter in: query description: |- * Pattern that must exist in createdOn. * Valid operators are: equal, notEqual, before, after, between * `between` operator for dates requires a beginning date, and an ending date. schema: type: string example: after:2020-08-18T20:21:49-05:00 - name: entryCountFilter in: query description: |- * Pattern that must exist in entryCount. * Valid Operators are: equal, notEqual, greaterThan, lessThan schema: type: string example: greaterThan:42 - name: includeChildLists in: query schema: default: false type: boolean - name: lastUpdatedOnFilter in: query description: |- * Pattern that must exist in lastUpdatedOn. * Valid operators are: equal, notEqual, before, after, between * `between` operator for dates requires two values, a beginning date, and an ending date. schema: type: string example: "between:2020-08-18T20:21:49-05:00,2020-12-10T00:00:00-05:00" - name: limit in: query description: The maximum number of results that a response page can contain. schema: format: int32 default: 10 type: integer - name: showRetired in: query description: Boolean to filter out inactive list definitions. Defaults to displaying active and inactive list definitions schema: type: boolean example: true - name: sort in: query description: The order you would like the results in. example: field:asc - name: titlePatternFilter in: query description: |- * Pattern that must exist in the title. * Valid Operators are: contains, notContains, startsWith, endsWith, equal, notEqual schema: type: string example: contains:my title responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/SeekPageResponseListDefinition' /list-svc/v1/tenants/{tenantId}/list-definitions/list-items/preview: post: tags: - List Items summary: This endpoint is deprecated and marked for removal. Use the v2 preview endpoint instead description: "* Preview List Items given a CSV file. \n* Neither the CSV file\ \ or the List Items parsed are persisted by the service. \n* This method will\ \ return 400 upon receiving an invalid request. \n* This method will return\ \ 401 for unauthenticated users. \n* This method will return 403 for authenticated\ \ users who request a forbidden resource. \n" parameters: - name: tenantId in: path description: The identifier of the tenant. required: true schema: type: string example: boreas - name: headersNotIncluded in: query description: |- * If `false`, the first row of file is used for headers and skips this row when reading items. * If `true`, assumes no headers. Creates a default title for each column (Column 1, Column 2, etc) and starts reading items from the first row. schema: default: false type: boolean - name: previewSize in: query description: The number of rows of the CSV file to preview. schema: format: int32 default: 20 type: integer example: 30 requestBody: content: multipart/form-data: schema: type: object properties: file: format: binary description: CSV file of items to be imported type: string encoding: file: contentType: text/plain responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/UnaryResponseListPreview' deprecated: true /list-svc/v1/tenants/{tenantId}/list-definitions/{id}: get: tags: - List Definition summary: Retrieve a List Definition description: "* Get a List Definition by its assigned unique identifier.\n*\ \ `tenantId`: (required) The tenant associated with the List Definition to\ \ retrieve.\n* `id`: (required) The unique identifier of the List Definition\ \ to retrieve.\n* This method will return 401 for unauthenticated users. \n\ * This method will return 403 for authenticated users who request a forbidden\ \ resource. \n* This method will return 404 upon receiving a identifier that\ \ does not exist. \n" parameters: - name: id in: path description: The system identifier for this object required: true schema: type: string readOnly: true - name: tenantId in: path description: The identifier of the tenant. required: true schema: type: string readOnly: true example: boreas responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/UnaryResponseListDefinition' put: tags: - List Definition summary: "Update Title / Description for a List Definition, and/or associated\ \ Columns" description: "* Update the Title and/or Description of an existing List Definition.\ \ Additionally, if any Column Definitions are included in the request body,\ \ update the Title and/or Description for each.\n* NOTE: currently, only a\ \ single column is supported for update.\n* `tenantId`: (required) The tenant\ \ associated with the List Definition to update.\n* `id`: (required) The unique\ \ identifier of the List Definition to replace.\n* `listDefinition`: (request\ \ body) A List Definition whose Title/Description are to be updated.\n* This\ \ method will return 400 upon receiving an invalid request. \n* This method\ \ will return 401 for unauthenticated users. \n* This method will return 403\ \ for authenticated users who request a forbidden resource. \n* This method\ \ will return 404 upon receiving a identifier that does not exist. \n" parameters: - name: id in: path description: The system identifier for this object required: true schema: type: string readOnly: true - name: tenantId in: path description: The identifier of the tenant. required: true schema: type: string readOnly: true example: boreas requestBody: content: application/json: schema: $ref: '#/components/schemas/ListDefinition' responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/UnaryResponseListDefinition' /list-svc/v1/tenants/{tenantId}/list-definitions/{id}/column-definitions/byTypeAndTitlePattern: get: tags: - Column Definition summary: Retrieve Columns by type and title description: "* Retrieve a paginated list of Column Definitions associated with\ \ the given List Definition that match the given type and title.\n* This method\ \ will return 401 for unauthenticated users. \n* This method will return 403\ \ for authenticated users who request a forbidden resource. \n* This method\ \ will return 404 upon receiving a identifier that does not exist. \n" parameters: - name: id in: path description: Unique identifier of the List Definition for which to return matching Column Definitions required: true schema: type: string - name: tenantId in: path description: The identifier of the tenant required: true schema: type: string - name: afterId in: query description: "The id of the item prior to the items you would like returned.\ \ A not present, or empty value means you want to start with the first result." schema: type: string example: 0f54a194-d75a-4a60-8c68-d4b8e66c971c - name: limit in: query description: The maximum number of results that a response page can contain. schema: format: int32 default: 10 type: integer - name: sort in: query description: The order you would like the results in. example: field:asc - name: titlePattern in: query description: |- Pattern that must exist in the column title. * Default will list all (`%%`). * Pattern must contain a minimum of 2 characters, and maximum of 10. schema: type: string example: '%ea%' - name: type in: query description: Type that the column must match required: true schema: $ref: '#/components/schemas/ColumnType' example: DATE responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/SeekPageResponseColumnDefinition' /list-svc/v1/tenants/{tenantId}/list-definitions/{id}/column-definitions/{columnId}/values: get: tags: - Column Definition summary: Retrieve a paginated list of values in a column description: "* This method will return 401 for unauthenticated users. \n* This\ \ method will return 403 for authenticated users who request a forbidden resource.\ \ \n* This method will return 404 upon receiving a identifier that does not\ \ exist. \n" parameters: - name: columnId in: path description: The unique identifier of the Column for which to retrieve values. required: true schema: type: string example: 6b041068-a9e6-408c-85f1-b3bac01d5cc8 - name: id in: path description: Unique identifier of the List for which to retrieve a Column required: true schema: type: string example: c07fc5d3-fae6-421c-ab7c-de382f94b335 - name: tenantId in: path description: The identifier of the tenant required: true schema: type: string - name: afterId in: query description: "The id of the item prior to the items you would like returned.\ \ A not present, or empty value means you want to start with the first result." schema: type: string example: 0f54a194-d75a-4a60-8c68-d4b8e66c971c - name: limit in: query description: The maximum number of results that a response page can contain. schema: format: int32 default: 10 type: integer - name: sort in: query description: The order you would like the results in. example: field:asc responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/SeekPageResponseColumnValue' /list-svc/v1/tenants/{tenantId}/list-definitions/{id}/column-definitions/{columnId}/values/byValue: get: tags: - Column Definition summary: Determine whether a value exists in a column description: "`NOTE:` This endpoint is currently unimplemented.\n* Determine\ \ if the given value exists in specified Column of Specified List.\n* If the\ \ value exists, a 204 No Content is returned.\n* If the value does not exist,\ \ a 404 Not Found is returned.\n* This method will return 400 upon receiving\ \ an invalid request. \n* This method will return 401 for unauthenticated\ \ users. \n* This method will return 403 for authenticated users who request\ \ a forbidden resource. \n* This method will return 404 upon receiving a identifier\ \ that does not exist. \n" parameters: - name: columnId in: path description: The unique identifier of the Column for which to determine the existence of a value. required: true schema: type: string example: IPAddress - name: id in: path description: The system identifier for this object required: true schema: type: string readOnly: true - name: tenantId in: path description: The identifier of the tenant. required: true schema: type: string readOnly: true example: boreas - name: value in: query description: String representation of the value to check for existence within a Column required: true schema: type: string example: 127.0.0.1 responses: "200": description: OK /list-svc/v1/tenants/{tenantId}/list-definitions/{id}/list-items/import: put: tags: - List Items summary: This endpoint is deprecated and marked for removal. Use the v2 replaceListItems endpoint instead description: "* Replaces all items in the List with the items in the given CSV.\n\ * This method will return 400 upon receiving an invalid request. \n* This\ \ method will return 401 for unauthenticated users. \n* This method will return\ \ 403 for authenticated users who request a forbidden resource. \n* This method\ \ will return 404 upon receiving a identifier that does not exist. \n" parameters: - name: id in: path description: The system identifier for this object required: true schema: type: string readOnly: true - name: tenantId in: path description: The identifier of the tenant. required: true schema: type: string readOnly: true example: boreas - name: headersNotIncluded in: query description: |- * If `false`, the first row of file is used for headers and skips this row when reading items. * If `true`, assumes no headers. Creates a default title for each column (Column 1, Column 2, etc) and starts reading items from the first row. schema: default: false type: boolean example: false requestBody: content: multipart/form-data: schema: type: object properties: file: format: binary description: CSV file of items to be imported type: string encoding: file: contentType: text/plain responses: "204": description: Import Successful deprecated: true post: tags: - List Items summary: This endpoint is deprecated and marked for removal. Use the v2 uploadListItems endpoint instead description: "* Add items in a given CSV file to the specified List.\n* This\ \ method will return 400 upon receiving an invalid request. \n* This method\ \ will return 401 for unauthenticated users. \n* This method will return 403\ \ for authenticated users who request a forbidden resource. \n* This method\ \ will return 404 upon receiving a identifier that does not exist. \n" parameters: - name: id in: path description: The system identifier for this object required: true schema: type: string readOnly: true - name: tenantId in: path description: The identifier of the tenant. required: true schema: type: string readOnly: true example: boreas - name: headersNotIncluded in: query description: |- * If `false`, the first row of file is used for headers and skips this row when reading items. * If `true`, assumes no headers. Creates a default title for each column (Column 1, Column 2, etc) and starts reading items from the first row. schema: default: false type: boolean example: false requestBody: content: multipart/form-data: schema: type: object properties: file: format: binary description: CSV file of items to be imported type: string encoding: file: contentType: text/plain responses: "204": description: Import Successful deprecated: true /list-svc/v1/tenants/{tenantId}/lists: post: tags: - List summary: Create list description: "* Create a List.\n* This method will return 400 upon receiving\ \ an invalid request. \n* This method will return 401 for unauthenticated\ \ users. \n* This method will return 403 for authenticated users who request\ \ a forbidden resource. \n* This method will return 404 upon receiving a identifier\ \ that does not exist. \n" parameters: - name: tenantId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/List' responses: "201": description: Created /list-svc/v1/tenants/{tenantId}/lists/list-definitions/{id}/child-lists: get: tags: - List summary: Get child lists associated to a parent list parameters: - name: id in: path description: The identifier of the parent list definition required: true schema: type: string - name: tenantId in: path description: The identifier of the tenant required: true schema: type: string - name: afterId in: query description: "The id of the item prior to the items you would like returned.\ \ A not present, or empty value means you want to start with the first result." schema: type: string example: 0f54a194-d75a-4a60-8c68-d4b8e66c971c - name: limit in: query description: The maximum number of results that a response page can contain. schema: format: int32 default: 10 type: integer - name: sort in: query description: The order you would like the results in. example: field:asc responses: "200": description: "* Get a paged list of child lists by parent list definition\ \ id.\n* `tenantId`: (required) The tenant for which to retrieve List\ \ Definitions.\n* `id`: (required) The id for which to retrieve child\ \ List Definitions.\n* Default sort is `updatedOn` descending.\n* This\ \ method will return 401 for unauthenticated users. \n* This method will\ \ return 403 for authenticated users who request a forbidden resource.\ \ \n" content: application/json: schema: $ref: '#/components/schemas/SeekPageResponseList' /list-svc/v2/tenants/{tenantId}/list-definitions/list-items/preview: post: tags: - List Items summary: Preview a List description: "* Preview List Items given a CSV file. \n* Neither the CSV file\ \ or the List Items parsed are persisted by the service. \n* This method will\ \ return 400 upon receiving an invalid request. \n* This method will return\ \ 401 for unauthenticated users. \n* This method will return 403 for authenticated\ \ users who request a forbidden resource. \n" parameters: - name: tenantId in: path required: true schema: type: string - name: headersNotIncluded in: query description: |- * If `false`, the first row of file is used for headers and skips this row when reading items. * If `true`, assumes no headers. Creates a default title for each column (Column 1, Column 2, etc) and starts reading items from the first row. schema: default: false type: boolean - name: previewSize in: query description: The number of rows from the CSV file to preview schema: format: int32 default: 20 type: integer requestBody: content: text/plain: schema: format: binary type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/UnaryResponseListPreview' /list-svc/v2/tenants/{tenantId}/list-definitions/{id}/list-items/import: put: tags: - List Items summary: Replace all list items description: "* Replaces all items in the List with the items in the given CSV.\n\ * This method will return 400 upon receiving an invalid request. \n* This\ \ method will return 401 for unauthenticated users. \n* This method will return\ \ 403 for authenticated users who request a forbidden resource. \n* This method\ \ will return 404 upon receiving a identifier that does not exist. \n" parameters: - name: id in: path description: The system identifier for this object required: true schema: type: string readOnly: true - name: tenantId in: path description: The identifier of the tenant. required: true schema: type: string readOnly: true example: boreas - name: headersNotIncluded in: query description: |- * If `false`, the first row of file is used for headers and skips this row when reading items. * If `true`, assumes no headers. Creates a default title for each column (Column 1, Column 2, etc) and starts reading items from the first row. schema: default: false type: boolean example: false requestBody: content: text/plain: schema: format: binary type: string responses: "204": description: Import Successful post: tags: - List Items summary: Import list items from CSV file description: "* Add items in a given CSV file to the specified List.\n* This\ \ method will return 400 upon receiving an invalid request. \n* This method\ \ will return 401 for unauthenticated users. \n* This method will return 403\ \ for authenticated users who request a forbidden resource. \n* This method\ \ will return 404 upon receiving a identifier that does not exist. \n" parameters: - name: id in: path description: The system identifier for this object required: true schema: type: string readOnly: true - name: tenantId in: path description: The identifier of the tenant. required: true schema: type: string readOnly: true example: boreas - name: headersNotIncluded in: query description: |- * If `false`, the first row of file is used for headers and skips this row when reading items. * If `true`, assumes no headers. Creates a default title for each column (Column 1, Column 2, etc) and starts reading items from the first row. schema: default: false type: boolean example: false requestBody: content: text/plain: schema: format: binary type: string responses: "204": description: Import Successful components: schemas: AuditContext: required: - userId - requestId type: object properties: userId: pattern: \S type: string impersonatorId: type: string requestId: pattern: \S type: string AuditLog: required: - tenantId - serviceName - type - action type: object allOf: - $ref: '#/components/schemas/Identifier' properties: tenantId: type: string readOnly: true id: pattern: "^[a-zA-Z0-9\\-._~]{2,40}$" type: string readOnly: true createdOn: format: date-time description: The born-on date of this entity type: string readOnly: true updatedOn: format: date-time description: The last time this entity has been modified. type: string readOnly: true auditedOn: description: The date the audit log occurred represented by a String formatted date. type: string allOf: - $ref: '#/components/schemas/Instant' example: 2020-08-19T21:01:20.123456Z record: type: string example: "{\"RECORD\":\"TEST\"}" comment: type: string serviceName: pattern: \S type: string type: pattern: \S type: string action: pattern: \S type: string entityId: type: string context: $ref: '#/components/schemas/AuditContext' subject: $ref: '#/components/schemas/AuditSubject' logRhythmSignalType: description: The date the audit log occurred represented by a String formatted date. type: string example: 2020-08-19T21:01:20.123456Z AuditSubject: required: - subjectId - resourceType type: object properties: subjectId: pattern: \S type: string resourceType: pattern: \S type: string related: type: object additionalProperties: type: array items: type: string example: User: - User1 - User2 BaseModel: title: BaseModel description: A basic model for entities with an identifier required: - tenantId type: object properties: tenantId: type: string readOnly: true id: pattern: "^[a-zA-Z0-9\\-._~]{2,40}$" type: string readOnly: true createdOn: format: date-time description: The born-on date of this entity type: string readOnly: true updatedOn: format: date-time description: The last time this entity has been modified. type: string readOnly: true BaseModel1: title: BaseModel description: A basic model for entities with an identifier required: - tenantId type: object properties: tenantId: type: string readOnly: true id: pattern: "^[a-zA-Z0-9\\-._~]{2,40}$" type: string readOnly: true createdOn: format: date-time description: The born-on date of this entity type: string readOnly: true updatedOn: format: date-time description: The last time this entity has been modified. type: string readOnly: true ColumnIdentifier: title: ColumnIdentifier description: Container for identification of a column required: - tenantId type: object properties: id: pattern: "^[a-zA-Z0-9\\-._~]{2,40}$" type: string tenantId: type: string readOnly: true columnId: pattern: "^[a-zA-Z0-9\\-._~]{2,40}$" type: string readOnly: true ColumnType: enum: - STRING - LONG_TEXT - INTEGER - DATE - GEO_POINT - IP type: string ColumnValue: title: ColumnValue description: An object containing a column value from a ListItem required: - tenantId - value type: object allOf: - $ref: '#/components/schemas/Identifier' properties: tenantId: type: string readOnly: true id: pattern: "^[a-zA-Z0-9\\-._~]{2,40}$" type: string readOnly: true createdOn: format: date-time description: The born-on date of this entity type: string readOnly: true updatedOn: format: date-time description: The last time this entity has been modified. type: string readOnly: true value: pattern: \S type: string example: 192.168.0.1 operationType: type: string allOf: - $ref: '#/components/schemas/OperationType' writeOnly: true Computed: title: Computed description: Container for computed values type: object properties: computed: type: object additionalProperties: $ref: '#/components/schemas/RelatedData' readOnly: true DataStrategy: enum: - LOCAL - CONTENT - THREAT_INTEL type: string Error: type: object properties: status: format: int32 type: integer message: type: string validationFailures: type: array items: $ref: '#/components/schemas/ValidationFailure' Event: title: Event description: An Event object required: - tenantId - topic - message - type type: object allOf: - $ref: '#/components/schemas/Identifier' properties: tenantId: type: string readOnly: true id: pattern: "^[a-zA-Z0-9\\-._~]{2,40}$" type: string readOnly: true createdOn: format: date-time description: The born-on date of this entity type: string readOnly: true updatedOn: format: date-time description: The last time this entity has been modified. type: string readOnly: true topic: description: The topic associated with this event type: string example: web-socket-topic message: description: The message contained within this event (string or serialized json string) minLength: 1 type: string example: "{\"name\": \"jonny appleseed\"}" type: description: The type of this event's message type: string example: java.lang.String Identifier: title: Identifier description: Container for identification of tenant and entities required: - tenantId type: object properties: id: pattern: "^[a-zA-Z0-9\\-._~]{2,40}$" type: string readOnly: true tenantId: type: string readOnly: true Instant: format: date-time type: string example: 2022-03-10T16:15:50Z JsonPatchRequest: type: object example: - op: replace path: /lastName value: Ottman LimitOffsetPageRequest: title: LimitOffsetPaginationRequest description: The information needed to make a limit offset pagination request. type: object properties: limit: format: int32 minimum: 0 type: integer sort: $ref: '#/components/schemas/Sort' pageNumber: format: int32 minimum: 1 type: integer discriminator: propertyName: pageNumber LimitOffsetPageResponse: description: "The result of a LimitOffsetRequest. Contains the matching content\ \ items, as well as information about the result." type: object properties: computed: type: object additionalProperties: $ref: '#/components/schemas/RelatedData' requestId: type: string error: $ref: '#/components/schemas/Error' status: $ref: '#/components/schemas/Status' paginationInfo: description: "Information about the response, which may be used to make\ \ another request" type: object allOf: - $ref: '#/components/schemas/LimitOffsetPaginationInfo' content: description: The result data type: array items: type: object LimitOffsetPaginationInfo: description: "Metadata about the results of LimitOffsetPaginationRequest, which\ \ can be used to make further LimitOffsetPaginationRequests" type: object properties: totalElements: format: int32 description: The total number of elements in the result set. type: integer List: required: - tenantId - listDefinition - listItems type: object properties: tenantId: type: string readOnly: true id: pattern: "^[a-zA-Z0-9\\-._~]{2,40}$" type: string readOnly: true createdOn: format: date-time description: The born-on date of this entity type: string readOnly: true updatedOn: format: date-time description: The last time this entity has been modified. type: string readOnly: true listDefinition: $ref: '#/components/schemas/ListDefinition' listItems: type: array items: $ref: '#/components/schemas/ListItem' example: listDefinition: title: Malicious IP Addresses description: These IPs are real bad columns: - id: 6bfc16e1-1edd-4438-a639-833ee18b8b32 title: IP Address description: These IPs are flagged type: IP listItems: - value: "6bfc16e1-1edd-4438-a639-833ee18b8b32": 127.0.0.1 operationType: ADD ListColumn: title: ListColumn description: A ListColumn object required: - tenantId - title - type type: object allOf: - $ref: '#/components/schemas/Identifier' properties: tenantId: type: string readOnly: true id: pattern: "^[a-zA-Z0-9\\-._~]{2,40}$" type: string readOnly: true createdOn: format: date-time description: The born-on date of this entity type: string readOnly: true updatedOn: format: date-time description: The last time this entity has been modified. type: string readOnly: true title: pattern: \S type: string example: My IP List description: type: string example: These IPs are flagged type: type: string allOf: - $ref: '#/components/schemas/ColumnType' example: IP ListDefinition: title: ListDefinition description: "List Definitions are not a container for list items, rather a\ \ specification of the columns/ items that compose the list." required: - tenantId - title - description - columns type: object allOf: - $ref: '#/components/schemas/Identifier' properties: tenantId: type: string readOnly: true id: pattern: "^[a-zA-Z0-9\\-._~]{2,40}$" type: string readOnly: true createdOn: format: date-time description: The born-on date of this entity type: string readOnly: true updatedOn: format: date-time description: The last time this entity has been modified. type: string readOnly: true title: description: A displayable name for the list. pattern: \S type: string example: Malicious IP Addresses description: description: A displayable description for the list. type: string example: These IPs are real bad columns: description: A list of Objects that define each column in a List minItems: 1 type: array items: $ref: '#/components/schemas/ListColumn' dataStrategy: description: "Source of data backing the list. Currently, only LOCAL is\ \ supported" default: LOCAL type: string allOf: - $ref: '#/components/schemas/DataStrategy' readOnly: true createdBy: description: The unique identifier of the creator of a List type: string readOnly: true example: a4s3df4f-61524-adf322 updatedBy: description: The unique identifier of the user who updates a List type: string readOnly: true example: a4s3df4f-61524-adf322 parentId: description: Parent id for the list. type: string example: a4s3df4f-61524-adf322 entryCount: format: int32 description: The total number of ListItems stored with this list default: 0 type: integer readOnly: true example: 5 matchingCmsData: description: Whether the list-svc list definition or the associated column definition(s) were modified since their last publish to CMS.) default: false type: boolean readOnly: true example: false ListItem: title: ListItem description: A ListItem object required: - tenantId - value - operationType type: object allOf: - $ref: '#/components/schemas/Identifier' properties: tenantId: type: string readOnly: true id: pattern: "^[a-zA-Z0-9\\-._~]{2,40}$" type: string readOnly: true createdOn: format: date-time description: The born-on date of this entity type: string readOnly: true updatedOn: format: date-time description: The last time this entity has been modified. type: string readOnly: true value: description: A 'row' containing an entry for each column in the List Definition. type: object additionalProperties: type: string example: IP Address: 127.0.0.1 Host: localhost operationType: default: ADD type: string allOf: - $ref: '#/components/schemas/OperationType' writeOnly: true retired: type: boolean readOnly: true example: false listDefinitionId: type: string ListPreview: type: object properties: columns: type: array items: $ref: '#/components/schemas/ListColumn' items: type: array items: $ref: '#/components/schemas/ListItem' Metadata: title: Metadata description: Container for metadata for entities required: - metadata type: object properties: metadata: type: object additionalProperties: type: string readOnly: true OperationType: enum: - ADD - REMOVE type: string RelatedData: title: RelatedData description: Container of related data for entities type: object properties: morselMetadata: type: object additionalProperties: type: object additionalProperties: type: string writeOnly: true stringMetadata: type: object additionalProperties: type: string writeOnly: true readOnly: true SeekPageResponse: description: "The result of a SeekPageRequest. Contains the matching content\ \ items, as well as information about the result." type: object properties: computed: type: object additionalProperties: $ref: '#/components/schemas/RelatedData' requestId: type: string error: $ref: '#/components/schemas/Error' status: $ref: '#/components/schemas/Status' paginationInfo: description: "Information about the response, which may be used to make\ \ another request" type: object allOf: - $ref: '#/components/schemas/SeekPaginationInfo' content: description: The result data type: array items: $ref: '#/components/schemas/BaseModel' SeekPageResponseColumnDefinition: description: "The result of a SeekPageRequest. Contains the matching content\ \ items, as well as information about the result." type: object properties: computed: type: object additionalProperties: $ref: '#/components/schemas/RelatedData' requestId: type: string error: $ref: '#/components/schemas/Error' status: $ref: '#/components/schemas/Status' paginationInfo: description: "Information about the response, which may be used to make\ \ another request" type: object allOf: - $ref: '#/components/schemas/SeekPaginationInfo' content: description: The result data type: array items: $ref: '#/components/schemas/ListColumn' SeekPageResponseColumnValue: description: "The result of a SeekPageRequest. Contains the matching content\ \ items, as well as information about the result." type: object properties: computed: type: object additionalProperties: $ref: '#/components/schemas/RelatedData' requestId: type: string error: $ref: '#/components/schemas/Error' status: $ref: '#/components/schemas/Status' paginationInfo: description: "Information about the response, which may be used to make\ \ another request" type: object allOf: - $ref: '#/components/schemas/SeekPaginationInfo' content: description: The result data type: array items: $ref: '#/components/schemas/ColumnValue' SeekPageResponseList: description: "The result of a SeekPageRequest. Contains the matching content\ \ items, as well as information about the result." type: object properties: computed: type: object additionalProperties: $ref: '#/components/schemas/RelatedData' requestId: type: string error: $ref: '#/components/schemas/Error' status: $ref: '#/components/schemas/Status' paginationInfo: description: "Information about the response, which may be used to make\ \ another request" type: object allOf: - $ref: '#/components/schemas/SeekPaginationInfo' content: description: The result data type: array items: $ref: '#/components/schemas/List' SeekPageResponseListDefinition: description: "The result of a SeekPageRequest. Contains the matching content\ \ items, as well as information about the result." type: object properties: computed: type: object additionalProperties: $ref: '#/components/schemas/RelatedData' requestId: type: string error: $ref: '#/components/schemas/Error' status: $ref: '#/components/schemas/Status' paginationInfo: description: "Information about the response, which may be used to make\ \ another request" type: object allOf: - $ref: '#/components/schemas/SeekPaginationInfo' content: description: The result data type: array items: $ref: '#/components/schemas/ListDefinition' SeekPaginationInfo: title: SeekPaginationInfo description: Contains information about a SeekPageResponse which can be used to make additional SeekPageRequests type: object properties: totalCount: format: int64 description: The total number of entities in the result set. type: integer nextPage: description: The id which should be used in a SeekPageRequest to get the next page. type: string Sort: required: - sortFields type: object properties: sortFields: minItems: 1 type: array items: $ref: '#/components/schemas/SortField' SortField: required: - fieldName type: object properties: fieldName: pattern: \S type: string ascending: type: boolean Status: enum: - OK - CREATED - ACCEPTED - NO_CONTENT - RESET_CONTENT - PARTIAL_CONTENT - MOVED_PERMANENTLY - FOUND - SEE_OTHER - NOT_MODIFIED - USE_PROXY - TEMPORARY_REDIRECT - BAD_REQUEST - UNAUTHORIZED - PAYMENT_REQUIRED - FORBIDDEN - NOT_FOUND - METHOD_NOT_ALLOWED - NOT_ACCEPTABLE - PROXY_AUTHENTICATION_REQUIRED - REQUEST_TIMEOUT - CONFLICT - GONE - LENGTH_REQUIRED - PRECONDITION_FAILED - REQUEST_ENTITY_TOO_LARGE - REQUEST_URI_TOO_LONG - UNSUPPORTED_MEDIA_TYPE - REQUESTED_RANGE_NOT_SATISFIABLE - EXPECTATION_FAILED - PRECONDITION_REQUIRED - TOO_MANY_REQUESTS - REQUEST_HEADER_FIELDS_TOO_LARGE - INTERNAL_SERVER_ERROR - NOT_IMPLEMENTED - BAD_GATEWAY - SERVICE_UNAVAILABLE - GATEWAY_TIMEOUT - HTTP_VERSION_NOT_SUPPORTED - NETWORK_AUTHENTICATION_REQUIRED type: string Status1: enum: - SUCCESS - FAILURE - FAILURE_UNRECOVERABLE - PROCESSING type: string TypedEvent: title: TypedEvent description: A Typed Event object required: - tenantId - topic - message - type type: object allOf: - $ref: '#/components/schemas/Identifier' properties: tenantId: type: string readOnly: true id: pattern: "^[a-zA-Z0-9\\-._~]{2,40}$" type: string readOnly: true createdOn: format: date-time description: The born-on date of this entity type: string readOnly: true updatedOn: format: date-time description: The last time this entity has been modified. type: string readOnly: true topic: description: The topic associated with this event type: string example: web-socket-topic message: description: The message contained within this event (string or serialized json string) minLength: 1 type: string example: "{\"name\": \"jonny appleseed\"}" type: description: The type of this event's message type: string example: java.lang.String UnaryResponse: required: - content type: object properties: computed: type: object additionalProperties: $ref: '#/components/schemas/RelatedData' requestId: type: string error: $ref: '#/components/schemas/Error' status: $ref: '#/components/schemas/Status' content: type: object discriminator: propertyName: content UnaryResponseListDefinition: required: - content type: object properties: computed: type: object additionalProperties: $ref: '#/components/schemas/RelatedData' requestId: type: string error: $ref: '#/components/schemas/Error' status: $ref: '#/components/schemas/Status' content: $ref: '#/components/schemas/ListDefinition' discriminator: propertyName: content UnaryResponseListPreview: required: - content type: object properties: computed: type: object additionalProperties: $ref: '#/components/schemas/RelatedData' requestId: type: string error: $ref: '#/components/schemas/Error' status: $ref: '#/components/schemas/Status' content: $ref: '#/components/schemas/ListPreview' discriminator: propertyName: content ValidationFailure: type: object properties: field: type: string message: type: string securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT apiKeyAuth: type: apiKey name: Authorization in: header