Retrieve an execution hook
GET /accounts/{account_id}/core/v1/executionHooks/{executionHook_id}
Returns the stored Execution Hook API resource in the JSON response body. Also populates matchingContainers and matchingImages based on the current matchingCriteria and the defined app.
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
account_id |
string |
path |
True |
ID of the containing account resource
|
executionHook_id |
string |
path |
True |
ID of the executionHook collection to list |
Response
Status: 200, Returns the stored Execution Hook API resource in the JSON response body. Also populates matchingContainers and matchingImages based on the current matchingCriteria and the defined app.
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.3",
"id": "5f7e2e31-280d-5984-a28b-2d19ab5b77c0",
"name": "Payroll",
"hookType": "custom",
"matchingCriteria": [
{
"type": "podLabel",
"value": "^env=production$"
},
{
"type": "containerName",
"value": "^payroll-master"
}
],
"matchingImages": [
"docker.io/bitnami/payroll:3.7.8",
"docker.io/bitnami/payroll:4.1.2"
],
"matchingContainers": [
{
"namespaceName": "payroll-east",
"podName": "payroll-release3-7",
"podLabels": [
{
"name": "env",
"value": "production"
},
{
"name": "app.kubernetes.io/managed-by",
"value": "Helm"
}
],
"containerName": "payroll-master-0",
"containerImage": "docker.io/bitnami/payroll:3.7.8"
},
{
"namespaceName": "payroll-east",
"podName": "payroll-release3-7",
"podLabels": [
{
"name": "env",
"value": "production"
},
{
"name": "app.kubernetes.io/managed-by",
"value": "Helm"
}
],
"containerName": "payroll-master-1",
"containerImage": "docker.io/bitnami/payroll:3.7.8"
}
],
"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 |
|
invalidParams |
array[invalidParams] |
False |
List of invalid query parameters |
Example response
{
"type": "https://astra.netapp.io/problems/5",
"title": "Invalid query parameters",
"detail": "The supplied query parameters are invalid.",
"status": "400"
}
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 |
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. |
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 |
invalidParams
Name | Type | Required | Description |
---|---|---|---|
name |
string |
True |
Name of the invalid query parameter |
reason |
string |
True |
Reason why the query parameter is invalid |