openapi: 3.0.0
info:
title: Delphix DCT Algorithms VirtualizationActions API
version: 3.28.0
description: Delphix DCT API
contact:
name: Delphix Support
url: https://portal.perforce.com/s/
email: support@delphix.com
servers:
- url: /dct/v3
security:
- ApiKeyAuth: []
tags:
- name: VirtualizationActions
paths:
/virtualization-actions/history:
get:
tags:
- VirtualizationActions
summary: Fetch a list of all virtualization actions
operationId: get_virtualization_action_history
parameters:
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/cursor'
- $ref: '#/components/parameters/virtualizationActionsSortParam'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: ListVirtualizationActionsResponse
properties:
items:
type: array
items:
$ref: '#/components/schemas/VirtualizationAction'
response_metadata:
$ref: '#/components/schemas/PaginatedResponseMetadata'
text/csv:
schema:
type: string
example: 'id,engine_id,action_type,title,details,start_time,end_time,user,user_agent,origin_ip,parent_action,state,work_source,work_source_name,work_source_principal,failure_description,failure_action,failure_message_code
1-ACTION-1,1,ACTION_TYPE,ACTION_TITLE,details,2024-07-15T21:20:28.864Z,2024-07-15T21:20:28.864Z,user,user_agent,127.0.0.1,parent action,FAILED,SYSTEM,admin,principal,description,action,message.code
'
/virtualization-actions/history/search:
post:
summary: Search virtualization actions
operationId: search_virtualization_action_history
tags:
- VirtualizationActions
x-filterable:
fields:
id:
type: string
engine_id:
type: string
action_type:
type: string
title:
type: string
details:
type: string
start_time:
type: date-time
end_time:
type: date-time
user:
type: string
user_agent:
type: string
origin_ip:
type: string
parent_action:
type: string
state:
type: string
work_source:
type: string
work_source_name:
type: string
work_source_principal:
type: string
failure_description:
type: string
failure_action:
type: string
failure_message_code:
type: string
parameters:
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/cursor'
- $ref: '#/components/parameters/virtualizationActionsSortParam'
requestBody:
$ref: '#/components/requestBodies/SearchBody'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: SearchVirtualizationActionsResponse
properties:
items:
type: array
items:
$ref: '#/components/schemas/VirtualizationAction'
response_metadata:
$ref: '#/components/schemas/PaginatedResponseMetadata'
text/csv:
schema:
type: string
example: 'id,engine_id,action_type,title,details,start_time,end_time,user,user_agent,origin_ip,parent_action,state,work_source,work_source_name,work_source_principal,failure_description,failure_action,failure_message_code
1-ACTION-1,1,ACTION_TYPE,ACTION_TITLE,details,2024-07-15T21:20:28.864Z,2024-07-15T21:20:28.864Z,user,user_agent,127.0.0.1,parent action,FAILED,SYSTEM,admin,principal,description,action,message.code
'
components:
parameters:
limit:
name: limit
in: query
description: Maximum number of objects to return per query. The value must be between 1 and 1000. Default is 100.
example: 50
schema:
type: integer
minimum: 1
maximum: 1000
default: 100
virtualizationActionsSortParam:
name: sort
in: query
description: The field to sort results by. A property name with a prepended '-' signifies descending order.
example: id
required: false
schema:
type: string
enum:
- id
- -id
- engine_id
- -engine_id
- action_type
- -action_type
- title
- -title
- details
- -details
- start_time
- -start_time
- end_time
- -end_time
- user
- -user
- user_agent
- -user_agent
- origin_ip
- -origin_ip
- parent_action
- -parent_action
- state
- -state
- work_source
- -work_source
- work_source_name
- -work_source_name
- work_source_principal
- -work_source_principal
- failure_description
- -failure_description
- failure_action
- -failure_action
- failure_message_code
- -failure_message_code
nullable: true
example: name
cursor:
name: cursor
in: query
description: Cursor to fetch the next or previous page of results. The value of this property must be extracted from the 'prev_cursor' or 'next_cursor' property of a PaginatedResponseMetadata which is contained in the response of list and search API endpoints.
schema:
type: string
minLength: 1
maxLength: 4096
schemas:
SearchBody:
description: Search body.
type: object
properties:
filter_expression:
type: string
minLength: 5
maxLength: 50000
example: string_field CONTAINS "over" AND numberic_field GT 9000 OR string_field2 EQ "Goku"
VirtualizationAction:
description: A virtualization engine action.
type: object
properties:
id:
description: ID of the virtualization engine action.
type: string
engine_id:
description: ID of the RegisteredEngine.
type: string
action_type:
description: Type of the action.
type: string
title:
description: The title of the action.
type: string
details:
description: Plain text description of the action.
type: string
start_time:
description: The time the action occurred. For long running processes, this represents the starting time.
type: string
format: date-time
end_time:
description: The time the action completed.
type: string
format: date-time
user:
description: The user who initiated the action.
type: string
user_agent:
description: Name of client software used to initiate the action.
type: string
origin_ip:
description: Network address used to initiate the action.
type: string
parent_action:
description: The parent action of this action.
type: string
state:
description: The state of the action.
type: string
enum:
- EXECUTING
- WAITING
- COMPLETED
- CANCELED
- FAILED
work_source:
description: Origin of the work that caused the action.
type: string
enum:
- WEBSERVICE
- POLICY
- SYSTEM
work_source_name:
description: Name of user or policy that initiated the action.
type: string
work_source_principal:
description: Principal of user that initiated the action.
type: string
failure_description:
description: Details of the action failure.
type: string
failure_action:
description: Action to be taken to resolve the failure.
type: string
failure_message_code:
description: Message ID associated with the event.
type: string
PaginatedResponseMetadata:
type: object
properties:
prev_cursor:
description: Pointer to the previous page of results. Use this value as a cursor query parameter in a subsequent request, along with limit, to navigate through the collection by virtual page.
type: string
next_cursor:
description: Pointer to the next page of results. Use this value as a cursor query parameter in a subsequent request, along with limit, to navigate through the collection by virtual page.
type: string
total:
description: The total number of results. This value may not be provided.
type: integer
format: int_64
requestBodies:
SearchBody:
x-skip-codegen-attr: description
description: 'A request body containing a filter expression. This enables searching
for items matching arbitrarily complex conditions. The list of
attributes which can be used in filter expressions is available
in the x-filterable vendor extension.
# Filter Expression Overview
**Note: All keywords are case-insensitive**
## Comparison Operators
| Operator | Description | Example |
| --- | --- | --- |
| CONTAINS | Substring or membership testing for string and list attributes respectively. | field3 CONTAINS ''foobar'', field4 CONTAINS TRUE |
| IN | Tests if field is a member of a list literal. List can contain a maximum of 100 values | field2 IN [''Goku'', ''Vegeta''] |
| GE | Tests if a field is greater than or equal to a literal value | field1 GE 1.2e-2 |
| GT | Tests if a field is greater than a literal value | field1 GT 1.2e-2 |
| LE | Tests if a field is less than or equal to a literal value | field1 LE 9000 |
| LT | Tests if a field is less than a literal value | field1 LT 9.02 |
| NE | Tests if a field is not equal to a literal value | field1 NE 42 |
| EQ | Tests if a field is equal to a literal value | field1 EQ 42 |
## Search Operator
The SEARCH operator filters for items which have any filterable
attribute that contains the input string as a substring, comparison
is done case-insensitively. This is not restricted to attributes with
string values. Specifically `SEARCH ''12''` would match an item with an
attribute with an integer value of `123`.
## Logical Operators
Ordered by precedence.
| Operator | Description | Example |
| --- | --- | --- |
| NOT | Logical NOT (Right associative) | NOT field1 LE 9000 |
| AND | Logical AND (Left Associative) | field1 GT 9000 AND field2 EQ ''Goku'' |
| OR | Logical OR (Left Associative) | field1 GT 9000 OR field2 EQ ''Goku'' |
## Grouping
Parenthesis `()` can be used to override operator precedence.
For example:
NOT (field1 LT 1234 AND field2 CONTAINS ''foo'')
## Literal Values
| Literal | Description | Examples |
| --- | --- | --- |
| Nil | Represents the absence of a value | nil, Nil, nIl, NIL |
| Boolean | true/false boolean | true, false, True, False, TRUE, FALSE |
| Number | Signed integer and floating point numbers. Also supports scientific notation. | 0, 1, -1, 1.2, 0.35, 1.2e-2, -1.2e+2 |
| String | Single or double quoted | "foo", "bar", "foo bar", ''foo'', ''bar'', ''foo bar'' |
| Datetime | Formatted according to [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339) | 2018-04-27T18:39:26.397237+00:00 |
| List | Comma-separated literals wrapped in square brackets | [0], [0, 1], [''foo'', "bar"] |
## Limitations
- A maximum of 8 unique identifiers may be used inside a filter expression.
'
content:
application/json:
schema:
$ref: '#/components/schemas/SearchBody'
examples:
nested:
description: 'An example of a nested Object comparison testing that at least one repository has a
version which is equal to 19.0.0.
'
summary: Nested Object Comparison
value:
filter_expression: repositories CONTAINS {version eq '19.0.0'}
relative:
description: 'An example of a relative comparison testing that field1 has a
value which is less than 123.
'
summary: Relative comparison
value:
filter_expression: field1 LE 123
nil:
description: 'An example of using nil to test for the absence of a value for field2.
'
summary: Absence of an attribute value
value:
filter_expression: field2 EQ NIL
non-nil:
description: 'An example of using nil to test for the existence of a value for field2.
'
summary: Existence of an attribute value
value:
filter_expression: field2 NE NIL
contains:
description: 'An example of using the ''CONTAINS'' operator to check if
field2 contains the string ''foo''. If field2 is string valued
then this is checking if ''foo'' is a substring of field2. If
field2 is a list of strings then this is checking if ''foo''
is a member of the list.
'
summary: Use of the CONTAINS operator
value:
filter_expression: field2 CONTAINS 'foo'
in:
description: 'An example of using the ''IN'' operator to check if field1
is an element of a list literal.
'
summary: Use of the IN operator
value:
filter_expression: field1 IN [1, 2, 3]
search:
description: 'An example of using the ''SEARCH'' operator to retrieve all elements
for which ''foo'' is a substring of a filterable attribute.
'
summary: Use of the SEARCH operator
value:
filter_expression: SEARCH 'foo'
parenthesis:
description: 'An example of parenthesis being used to group operators & override
operator precedence.
'
summary: Overriding operator precedence
value:
filter_expression: field1 LT 1234 AND (field2 CONTAINS 'foo' OR field3 CONTAINS 'bar')
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: Authorization