Create a new execution hook for an app
POST /accounts/{account_id}/k8s/v1/apps/{app_id}/executionHooks
Indicates the desired values for the Execution Hook API resource to be created.
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
account_id |
string |
path |
True |
ID of the containing account resource
|
app_id |
string |
path |
True |
ID of the containing app resource |
Request Body
Indicates the desired values for the Execution Hook API resource to be created.
Name | Type | Required | Description |
---|---|---|---|
type |
string |
True |
Media type of the resource. Defined values are:
|
version |
string |
True |
Version of the resource. Defined values are:
|
name |
string |
True |
JSON string containing a user-specified name for the resource. Defined values are:
|
hookType |
string |
True |
JSON string defining the hook type. Defined values are:
|
matchingCriteria |
array[matchingCriteria] |
False |
JSON array of JSON objects describing the match criteria for the execution hook. When multiple matchingCriteria are specified a logical AND is applied to criteria. Defined values are:
|
action |
string |
True |
JSON string indicating which action the execution hook will run assuming the match criteria are met. Defined values are:
|
stage |
string |
True |
JSON string indicating the stage during the action that the hook will be executed. Defined values are:
|
hookSourceID |
string |
True |
JSON string containing the hook source ID that is run through this execution hook. Defined values are:
|
arguments |
array[string] |
False |
JSON array of JSON strings for the arguments to the source. Defined values are:
|
appID |
string |
True |
JSON string containing the associated ID of the application that this hook is linked to. In essence, other matching criteria, if set. Defined values are:
|
enabled |
string |
False |
JSON string that indicates if the execution hook is enabled. Defined values are:
|
description |
string |
False |
JSON string containing a user-specified description for the hook source. Defined values are:
|
metadata |
False |
Client and service-specified metadata associated with the resource. Defined values are:
|
Example request
{
"type": "application/astra-executionHook",
"version": "1.2",
"name": "Payroll",
"hookType": "custom",
"action": "snapshot",
"stage": "pre",
"hookSourceID": "50e89023-ba84-435d-bb47-1833f4c250ff",
"arguments": [
"freeze"
],
"appID": "7be5ae7c-151d-4230-ac39-ac1d0b33c2a9",
"enabled": "true",
"description": "Payroll production hook"
}
Response
Status: 201, Returns the newly created executionHook resource in the JSON response body.
Name | Type | Required | Description |
---|---|---|---|
type |
string |
True |
Media type of the resource. Defined values are:
|
version |
string |
True |
Version of the resource. Defined values are:
|
id |
string |
True |
Globally unique identifier of the resource. Defined values are:
|
name |
string |
True |
JSON string containing a user-specified name for the resource. Defined values are:
|
hookType |
string |
True |
JSON string defining the hook type. Defined values are:
|
matchingCriteria |
array[matchingCriteria] |
True |
JSON array of JSON objects describing the match criteria for the execution hook. When multiple matchingCriteria are specified a logical AND is applied to criteria. Defined values are:
|
matchingContainers |
array[matchingContainers] |
False |
JSON array of JSON objects of each container that matches the configured matching criteria within the defined app. |
matchingImages |
array[string] |
False |
JSON array of JSON strings for the matching container images. Defined values are:
|
action |
string |
True |
JSON string indicating which action the execution hook will run assuming the match criteria are met. Defined values are:
|
stage |
string |
True |
JSON string indicating the stage during the action that the hook will be executed. Defined values are:
|
hookSourceID |
string |
True |
JSON string containing the hook source ID that is run through this execution hook. Defined values are:
|
arguments |
array[string] |
False |
JSON array of JSON strings for the arguments to the source. Defined values are:
|
appID |
string |
False |
JSON string containing the associated ID of the application that this hook is linked to. In essence, other matching criteria, if set. Defined values are:
|
enabled |
string |
True |
JSON string that indicates if the execution hook is enabled. Defined values are:
|
description |
string |
False |
JSON string containing a user-specified description for the hook source. Defined values are:
|
metadata |
True |
Client and service-specified metadata associated with the resource. Defined values are:
|
Example response
{
"type": "application/astra-executionHook",
"version": "1.2",
"id": "946e60cb-980b-5374-9e6e-9fe1f6780352",
"name": "Payroll",
"hookType": "custom",
"matchingCriteria": [],
"action": "snapshot",
"stage": "pre",
"hookSourceID": "50e89023-ba84-435d-bb47-1833f4c250ff",
"arguments": [
"freeze"
],
"appID": "7be5ae7c-151d-4230-ac39-ac1d0b33c2a9",
"enabled": "true",
"description": "Payroll production hook",
"metadata": {
"labels": [],
"creationTimestamp": "2022-10-06T20:58:16.305662Z",
"modificationTimestamp": "2022-10-06T20:58:16.305662Z",
"createdBy": "8f84cf09-8036-51e4-b579-bd30cb07b269"
}
}
Response
Status: 401, Unauthorized
Name | Type | Required | Description |
---|---|---|---|
type |
string |
True |
|
title |
string |
True |
|
detail |
string |
True |
|
status |
string |
True |
|
correlationID |
string |
False |
Example response
{
"type": "https://astra.netapp.io/problems/3",
"title": "Missing bearer token",
"detail": "The request is missing the required bearer token.",
"status": "401"
}
Response
Status: 400, Bad request
Name | Type | Required | Description |
---|---|---|---|
type |
string |
True |
|
title |
string |
True |
|
detail |
string |
True |
|
status |
string |
True |
|
correlationID |
string |
False |
|
invalidFields |
array[invalidFields] |
False |
List of invalid request body fields |
Example response
{
"type": "https://astra.netapp.io/problems/5",
"title": "Invalid query parameters",
"detail": "The supplied query parameters are invalid.",
"status": "400"
}
Response
Status: 409, Conflict
Name | Type | Required | Description |
---|---|---|---|
type |
string |
True |
|
title |
string |
True |
|
detail |
string |
True |
|
status |
string |
True |
|
correlationID |
string |
False |
Example response
{
"type": "https://astra.netapp.io/problems/10",
"title": "JSON resource conflict",
"detail": "The request body JSON contains a field that conflicts with an idempotent value.",
"status": "409"
}
Response
Status: 403, Forbidden
Name | Type | Required | Description |
---|---|---|---|
type |
string |
True |
|
title |
string |
True |
|
detail |
string |
True |
|
status |
string |
True |
|
correlationID |
string |
False |
Example response
{
"type": "https://astra.netapp.io/problems/11",
"title": "Operation not permitted",
"detail": "The requested operation isn't permitted.",
"status": "403"
}
Error
Status: 404, Not found
Name | Type | Required | Description |
---|---|---|---|
type |
string |
True |
|
title |
string |
True |
|
detail |
string |
True |
|
status |
string |
True |
|
correlationID |
string |
False |
Example error response
{
"type": "https://astra.netapp.io/problems/2",
"title": "Collection not found",
"detail": "The collection specified in the request URI wasn't found.",
"status": "404"
}
Definitions
See Definitions
matchingCriteria
Name | Type | Required | Description |
---|---|---|---|
type |
string |
False |
JSON string identifying the match criteria type. |
value |
string |
False |
JSON string containing a regex to match for the given match type. Regex syntax: https://github.com/google/re2/wiki/Syntax |
type_astra_label
Name | Type | Required | Description |
---|---|---|---|
name |
string |
True |
|
value |
string |
True |
type_astra_metadata_update
Client and service-specified metadata associated with the resource. Defined values are:
-
Conforms to the Astra Metadata Schema If not specified on create, a metadata object will be created with no labels. If not specified on update, the metadata object's labels, creationTimestamp and createdBy, will be preserved without modification.
Name | Type | Required | Description |
---|---|---|---|
labels |
array[type_astra_label] |
False |
|
creationTimestamp |
string |
False |
|
modificationTimestamp |
string |
False |
|
createdBy |
string |
False |
|
modifiedBy |
string |
False |
matchingCriteria
Name | Type | Required | Description |
---|---|---|---|
type |
string |
True |
JSON string identifying the match criteria type. |
value |
string |
True |
JSON string containing a regex to match for the given match type. Regex syntax: https://github.com/google/re2/wiki/Syntax |
type_k8s_label
Name | Type | Required | Description |
---|---|---|---|
name |
string |
True |
|
value |
string |
True |
matchingContainers
Name | Type | Required | Description |
---|---|---|---|
podName |
string |
False |
JSON string of matching container's pod name. |
podLabels |
array[type_k8s_label] |
False |
JSON array of label objects of matching container's pod's labels. |
containerImage |
string |
False |
JSON string of matching container's image. |
containerName |
string |
False |
JSON string of matching container's name. |
namespaceName |
string |
False |
JSON string of matching container's pod's namespace name. |
invalidParams
Name | Type | Required | Description |
---|---|---|---|
name |
string |
True |
Name of the invalid query parameter |
reason |
string |
True |
Reason why the query parameter is invalid |
invalidFields
Name | Type | Required | Description |
---|---|---|---|
name |
string |
True |
Name of the invalid request body field |
reason |
string |
True |
Reason why the request body field is invalid |