@cumulus/api-client 9.2.3 → 9.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/CumulusApiClientError.d.ts +3 -1
  2. package/CumulusApiClientError.d.ts.map +1 -1
  3. package/CumulusApiClientError.js +4 -2
  4. package/CumulusApiClientError.js.map +1 -1
  5. package/cumulusApiClient.d.ts.map +1 -1
  6. package/cumulusApiClient.js +6 -3
  7. package/cumulusApiClient.js.map +1 -1
  8. package/deadLetterArchive.d.ts.map +1 -1
  9. package/deadLetterArchive.js +1 -0
  10. package/deadLetterArchive.js.map +1 -1
  11. package/executions.d.ts +32 -0
  12. package/executions.d.ts.map +1 -1
  13. package/executions.js +55 -1
  14. package/executions.js.map +1 -1
  15. package/granules.d.ts +22 -16
  16. package/granules.d.ts.map +1 -1
  17. package/granules.js +32 -20
  18. package/granules.js.map +1 -1
  19. package/index.d.ts +1 -0
  20. package/index.d.ts.map +1 -1
  21. package/index.js +1 -2
  22. package/index.js.map +1 -1
  23. package/migrationCounts.d.ts.map +1 -1
  24. package/migrationCounts.js +1 -0
  25. package/migrationCounts.js.map +1 -1
  26. package/package.json +5 -5
  27. package/pdrs.d.ts +16 -0
  28. package/pdrs.d.ts.map +1 -1
  29. package/pdrs.js +24 -2
  30. package/pdrs.js.map +1 -1
  31. package/reconciliationReports.d.ts.map +1 -1
  32. package/reconciliationReports.js +3 -2
  33. package/reconciliationReports.js.map +1 -1
  34. package/replays.d.ts +38 -0
  35. package/replays.d.ts.map +1 -0
  36. package/replays.js +61 -0
  37. package/replays.js.map +1 -0
  38. package/rules.d.ts.map +1 -1
  39. package/rules.js +1 -1
  40. package/rules.js.map +1 -1
  41. package/src/CumulusApiClientError.ts +7 -2
  42. package/src/cumulusApiClient.ts +19 -3
  43. package/src/deadLetterArchive.ts +1 -0
  44. package/src/executions.ts +66 -0
  45. package/src/granules.ts +48 -22
  46. package/src/index.ts +1 -2
  47. package/src/migrationCounts.ts +1 -0
  48. package/src/pdrs.ts +29 -1
  49. package/src/reconciliationReports.ts +11 -2
  50. package/src/replays.ts +72 -0
  51. package/src/rules.ts +5 -1
  52. package/src/types.ts +2 -1
  53. package/types.d.ts +1 -0
  54. package/types.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"reconciliationReports.d.ts","sourceRoot":"","sources":["src/reconciliationReports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iCAAiC,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE/E;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,WAAkB;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,iBAAiB,CAAA;CAC7B,KAAG,OAAO,CAAC,iCAAiC,CAW5C,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,0BAA0B,WAAkB;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,iBAAiB,CAAA;CAC7B,KAAG,OAAO,CAAC,iCAAiC,CAW5C,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,iBAAiB,CAAA;CAC7B,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAe7C"}
1
+ {"version":3,"file":"reconciliationReports.d.ts","sourceRoot":"","sources":["src/reconciliationReports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iCAAiC,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE/E;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,WAAkB;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,iBAAiB,CAAA;CAC7B,KAAG,OAAO,CAAC,iCAAiC,CAe5C,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,0BAA0B,WAAkB;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,iBAAiB,CAAA;CAC7B,KAAG,OAAO,CAAC,iCAAiC,CAW5C,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,iBAAiB,CAAA;CAC7B,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAoB7C"}
@@ -15,7 +15,7 @@ const cumulusApiClient_1 = require("./cumulusApiClient");
15
15
  * @returns {Promise<Object>} - the report fetched by the API
16
16
  */
17
17
  exports.getReconciliationReport = async (params) => {
18
- const { prefix, name, callback = cumulusApiClient_1.invokeApi } = params;
18
+ const { prefix, name, callback = cumulusApiClient_1.invokeApi, } = params;
19
19
  return await callback({
20
20
  prefix: prefix,
21
21
  payload: {
@@ -62,7 +62,7 @@ exports.deleteReconciliationReport = async (params) => {
62
62
  * @returns {Promise<Object>} - promise that resolves to the output of the API lambda
63
63
  */
64
64
  async function createReconciliationReport(params) {
65
- const { prefix, request, callback = cumulusApiClient_1.invokeApi } = params;
65
+ const { prefix, request, callback = cumulusApiClient_1.invokeApi, } = params;
66
66
  return await callback({
67
67
  prefix: prefix,
68
68
  payload: {
@@ -74,6 +74,7 @@ async function createReconciliationReport(params) {
74
74
  path: '/reconciliationReports',
75
75
  body: JSON.stringify(request),
76
76
  },
77
+ expectedStatusCode: 202,
77
78
  });
78
79
  }
79
80
  exports.createReconciliationReport = createReconciliationReport;
@@ -1 +1 @@
1
- {"version":3,"file":"reconciliationReports.js","sourceRoot":"","sources":["src/reconciliationReports.ts"],"names":[],"mappings":";;;AAAA,yDAA+C;AAG/C;;;;;;;;;;;GAWG;AACU,QAAA,uBAAuB,GAAG,KAAK,EAAE,MAI7C,EAA8C,EAAE;IAC/C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,4BAAS,EAAE,GAAG,MAAM,CAAC;IAEtD,OAAO,MAAM,QAAQ,CAAC;QACpB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,WAAW;YACrB,IAAI,EAAE,0BAA0B,IAAI,EAAE;SACvC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACU,QAAA,0BAA0B,GAAG,KAAK,EAAE,MAIhD,EAA8C,EAAE;IAC/C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,4BAAS,EAAE,GAAG,MAAM,CAAC;IAEtD,OAAO,MAAM,QAAQ,CAAC;QACpB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,WAAW;YACrB,IAAI,EAAE,0BAA0B,IAAI,EAAE;SACvC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,0BAA0B,CAAC,MAIhD;IACC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,4BAAS,EAAE,GAAG,MAAM,CAAC;IAEzD,OAAO,MAAM,QAAQ,CAAC;QACpB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B;KACF,CAAC,CAAC;AACL,CAAC;AAnBD,gEAmBC"}
1
+ {"version":3,"file":"reconciliationReports.js","sourceRoot":"","sources":["src/reconciliationReports.ts"],"names":[],"mappings":";;;AAAA,yDAA+C;AAG/C;;;;;;;;;;;GAWG;AACU,QAAA,uBAAuB,GAAG,KAAK,EAAE,MAI7C,EAA8C,EAAE;IAC/C,MAAM,EACJ,MAAM,EACN,IAAI,EACJ,QAAQ,GAAG,4BAAS,GACrB,GAAG,MAAM,CAAC;IAEX,OAAO,MAAM,QAAQ,CAAC;QACpB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,WAAW;YACrB,IAAI,EAAE,0BAA0B,IAAI,EAAE;SACvC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACU,QAAA,0BAA0B,GAAG,KAAK,EAAE,MAIhD,EAA8C,EAAE;IAC/C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,4BAAS,EAAE,GAAG,MAAM,CAAC;IAEtD,OAAO,MAAM,QAAQ,CAAC;QACpB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,WAAW;YACrB,IAAI,EAAE,0BAA0B,IAAI,EAAE;SACvC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,0BAA0B,CAAC,MAIhD;IACC,MAAM,EACJ,MAAM,EACN,OAAO,EACP,QAAQ,GAAG,4BAAS,GACrB,GAAG,MAAM,CAAC;IAEX,OAAO,MAAM,QAAQ,CAAC;QACpB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B;QACD,kBAAkB,EAAE,GAAG;KACxB,CAAC,CAAC;AACL,CAAC;AAxBD,gEAwBC"}
package/replays.d.ts ADDED
@@ -0,0 +1,38 @@
1
+ import { MigrationCountsPayload } from '@cumulus/types/api/migrationCounts';
2
+ import { ReplaySqsMessagesPayload } from '@cumulus/types/api/replaySqsMessages';
3
+ import { ApiGatewayLambdaHttpProxyResponse, InvokeApiFunction } from './types';
4
+ /**
5
+ * POST a request to start a replay of Kinesis message
6
+ *
7
+ * @param {Object} params - params
8
+ * @param {string} params.prefix - the prefix configured for the stack
9
+ * @param {Object} params.payload - payload to post to the endpoint
10
+ * @param {Function} params.callback - async function to invoke the api lambda
11
+ * that takes a prefix / user payload. Defaults
12
+ * to cumulusApiClient.invokeApi
13
+ * @returns {Promise<Object>} - promise that resolves to the output
14
+ * of the API lambda
15
+ */
16
+ export declare const postKinesisReplays: (params: {
17
+ prefix: string;
18
+ payload: MigrationCountsPayload;
19
+ callback?: InvokeApiFunction;
20
+ }) => Promise<ApiGatewayLambdaHttpProxyResponse>;
21
+ /**
22
+ * POST a request to start replaying archived SQS Messages
23
+ *
24
+ * @param {Object} params - params
25
+ * @param {string} params.prefix - the prefix configured for the stack
26
+ * @param {Object} params.payload - payload to post to the endpoint
27
+ * @param {Function} params.callback - async function to invoke the api lambda
28
+ * that takes a prefix / user payload. Defaults
29
+ * to cumulusApiClient.invokeApi
30
+ * @returns {Promise<Object>} - promise that resolves to the output
31
+ * of the API lambda
32
+ */
33
+ export declare const replaySqsMessages: (params: {
34
+ prefix: string;
35
+ payload: ReplaySqsMessagesPayload;
36
+ callback?: InvokeApiFunction;
37
+ }) => Promise<ApiGatewayLambdaHttpProxyResponse>;
38
+ //# sourceMappingURL=replays.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replays.d.ts","sourceRoot":"","sources":["src/replays.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,OAAO,EAAE,iCAAiC,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE/E;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,WAAkB;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,sBAAsB,CAAA;IAC/B,QAAQ,CAAC,EAAE,iBAAiB,CAAA;CAC7B,KAAG,OAAO,CAAC,iCAAiC,CAgB5C,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,WAAkB;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,wBAAwB,CAAC;IAClC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B,KAAG,OAAO,CAAC,iCAAiC,CAgB5C,CAAC"}
package/replays.js ADDED
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.replaySqsMessages = exports.postKinesisReplays = void 0;
4
+ const cumulusApiClient_1 = require("./cumulusApiClient");
5
+ /**
6
+ * POST a request to start a replay of Kinesis message
7
+ *
8
+ * @param {Object} params - params
9
+ * @param {string} params.prefix - the prefix configured for the stack
10
+ * @param {Object} params.payload - payload to post to the endpoint
11
+ * @param {Function} params.callback - async function to invoke the api lambda
12
+ * that takes a prefix / user payload. Defaults
13
+ * to cumulusApiClient.invokeApi
14
+ * @returns {Promise<Object>} - promise that resolves to the output
15
+ * of the API lambda
16
+ */
17
+ exports.postKinesisReplays = async (params) => {
18
+ const { prefix, payload, callback = cumulusApiClient_1.invokeApi } = params;
19
+ return await callback({
20
+ prefix,
21
+ payload: {
22
+ httpMethod: 'POST',
23
+ resource: '/{proxy+}',
24
+ headers: {
25
+ 'Content-Type': 'application/json',
26
+ },
27
+ path: '/replays',
28
+ body: JSON.stringify(payload),
29
+ },
30
+ expectedStatusCode: 202,
31
+ });
32
+ };
33
+ /**
34
+ * POST a request to start replaying archived SQS Messages
35
+ *
36
+ * @param {Object} params - params
37
+ * @param {string} params.prefix - the prefix configured for the stack
38
+ * @param {Object} params.payload - payload to post to the endpoint
39
+ * @param {Function} params.callback - async function to invoke the api lambda
40
+ * that takes a prefix / user payload. Defaults
41
+ * to cumulusApiClient.invokeApi
42
+ * @returns {Promise<Object>} - promise that resolves to the output
43
+ * of the API lambda
44
+ */
45
+ exports.replaySqsMessages = async (params) => {
46
+ const { payload, prefix, callback = cumulusApiClient_1.invokeApi } = params;
47
+ return await callback({
48
+ prefix,
49
+ payload: {
50
+ httpMethod: 'POST',
51
+ resource: '/{proxy+}',
52
+ headers: {
53
+ 'Content-Type': 'application/json',
54
+ },
55
+ path: '/replays/sqs',
56
+ body: JSON.stringify(payload),
57
+ },
58
+ expectedStatusCode: 202,
59
+ });
60
+ };
61
+ //# sourceMappingURL=replays.js.map
package/replays.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replays.js","sourceRoot":"","sources":["src/replays.ts"],"names":[],"mappings":";;;AAEA,yDAA+C;AAG/C;;;;;;;;;;;GAWG;AACU,QAAA,kBAAkB,GAAG,KAAK,EAAE,MAIxC,EAA8C,EAAE;IAC/C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,4BAAS,EAAE,GAAG,MAAM,CAAC;IAEzD,OAAO,MAAM,QAAQ,CAAC;QACpB,MAAM;QACN,OAAO,EAAE;YACP,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B;QACD,kBAAkB,EAAE,GAAG;KACxB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;;;;;;GAWG;AACU,QAAA,iBAAiB,GAAG,KAAK,EAAE,MAIvC,EAA8C,EAAE;IAC/C,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAG,4BAAS,EAAE,GAAG,MAAM,CAAC;IAEzD,OAAO,MAAM,QAAQ,CAAC;QACpB,MAAM;QACN,OAAO,EAAE;YACP,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B;QACD,kBAAkB,EAAE,GAAG;KACxB,CAAC,CAAC;AACL,CAAC,CAAC"}
package/rules.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["src/rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE5E,OAAO,EAAE,iCAAiC,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE/E;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,QAAQ,WAAkB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,CAAC,EAAE,iBAAiB,CAAA;CAC7B,KAAG,OAAO,CAAC,iCAAiC,CAe5C,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,WAAkB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,iBAAiB,GAAG;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACvD,QAAQ,CAAC,EAAE,iBAAiB,CAAA;CAC7B,KAAG,OAAO,CAAC,iCAAiC,CAoB5C,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS;YACZ,MAAM;;;;;MAGZ,OAAO,CAAC,iCAAiC,CAY5C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,OAAO,WAAkB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,iBAAiB,CAAA;CAC5B,KAAG,OAAO,CAAC,iCAAiC,CAW5C,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,WAAkB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,iBAAiB,CAAA;CAC5B,KAAG,OAAO,CAAC,iCAAiC,CAW5C,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,QAAQ,EAAE,iBAAiB,CAAA;CAC5B,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAiB7C"}
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["src/rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE5E,OAAO,EAAE,iCAAiC,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE/E;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,QAAQ,WAAkB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,CAAC,EAAE,iBAAiB,CAAA;CAC7B,KAAG,OAAO,CAAC,iCAAiC,CAe5C,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,WAAkB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,iBAAiB,GAAG;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACvD,QAAQ,CAAC,EAAE,iBAAiB,CAAA;CAC7B,KAAG,OAAO,CAAC,iCAAiC,CAoB5C,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS;YACZ,MAAM;;;;;MAGZ,OAAO,CAAC,iCAAiC,CAY5C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,OAAO,WAAkB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,iBAAiB,CAAA;CAC5B,KAAG,OAAO,CAAC,iCAAiC,CAe5C,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,WAAkB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,iBAAiB,CAAA;CAC5B,KAAG,OAAO,CAAC,iCAAiC,CAW5C,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,QAAQ,EAAE,iBAAiB,CAAA;CAC5B,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAiB7C"}
package/rules.js CHANGED
@@ -90,7 +90,7 @@ exports.listRules = async (params) => {
90
90
  * API lambda
91
91
  */
92
92
  exports.getRule = async (params) => {
93
- const { prefix, ruleName, callback = cumulusApiClient_1.invokeApi } = params;
93
+ const { prefix, ruleName, callback = cumulusApiClient_1.invokeApi, } = params;
94
94
  return await callback({
95
95
  prefix,
96
96
  payload: {
package/rules.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["src/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["src/rules.ts"],"names":[],"mappings":";;;AACA,yDAA+C;AAG/C;;;;;;;;;;;GAWG;AACU,QAAA,QAAQ,GAAG,KAAK,EAAE,MAI9B,EAA8C,EAAE;IAC/C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,4BAAS,EAAE,GAAG,MAAM,CAAC;IAEtD,OAAO,MAAM,QAAQ,CAAC;QACpB,MAAM;QACN,OAAO,EAAE;YACP,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;;;;;;GAWG;AACU,QAAA,UAAU,GAAG,KAAK,EAAE,MAKhC,EAA8C,EAAE;IAC/C,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,QAAQ,GAAG,4BAAS,GACrB,GAAG,MAAM,CAAC;IAEX,OAAO,MAAM,QAAQ,CAAC;QACpB,MAAM;QACN,OAAO,EAAE;YACP,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,UAAU,QAAQ,EAAE;YAC1B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;SACnC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACU,QAAA,SAAS,GAAG,KAAK,EAAE,MAI/B,EAA8C,EAAE;IAC/C,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,QAAQ,GAAG,4BAAS,EAAE,GAAG,MAAM,CAAC;IAE5D,OAAO,MAAM,QAAQ,CAAC;QACpB,MAAM;QACN,OAAO,EAAE;YACP,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,WAAW;YACrB,IAAI,EAAE,QAAQ;YACd,qBAAqB,EAAE,KAAK;SAC7B;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;;;;;GAUG;AACU,QAAA,OAAO,GAAG,KAAK,EAAE,MAI7B,EAA8C,EAAE;IAC/C,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,QAAQ,GAAG,4BAAS,GACrB,GAAG,MAAM,CAAC;IAEX,OAAO,MAAM,QAAQ,CAAC;QACpB,MAAM;QACN,OAAO,EAAE;YACP,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,WAAW;YACrB,IAAI,EAAE,UAAU,QAAQ,EAAE;SAC3B;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACU,QAAA,UAAU,GAAG,KAAK,EAAE,MAIhC,EAA8C,EAAE;IAC/C,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,4BAAS,EAAE,GAAG,MAAM,CAAC;IAE1D,OAAO,MAAM,QAAQ,CAAC;QACpB,MAAM;QACN,OAAO,EAAE;YACP,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,WAAW;YACrB,IAAI,EAAE,UAAU,QAAQ,EAAE;SAC3B;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,SAAS,CAAC,MAK/B;IACC,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,YAAY,GAAG,EAAE,EACjB,QAAQ,GAAG,4BAAS,GACrB,GAAG,MAAM,CAAC;IAEX,OAAO,MAAM,kBAAU,CAAC;QACtB,MAAM;QACN,QAAQ;QACR,YAAY,EAAE;YACZ,GAAG,YAAY;YACf,MAAM,EAAE,OAAO;SAChB;QACD,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAtBD,8BAsBC"}
@@ -1,7 +1,12 @@
1
1
  export class CumulusApiClientError extends Error {
2
- constructor(message: string) {
2
+ public statusCode: number | undefined;
3
+ public apiMessage: string | undefined;
4
+
5
+ constructor(message: string, statusCode: number, apiMessage: string | undefined) {
3
6
  super(message);
4
- this.name = this.constructor.name;
7
+ Object.setPrototypeOf(this, new.target.prototype);
8
+ this.statusCode = statusCode;
9
+ this.apiMessage = apiMessage;
5
10
  }
6
11
  }
7
12
 
@@ -1,6 +1,8 @@
1
1
  import pRetry from 'p-retry';
2
- import Logger from '@cumulus/logger';
2
+
3
3
  import { lambda } from '@cumulus/aws-client/services';
4
+ import Logger from '@cumulus/logger';
5
+
4
6
  import { CumulusApiClientError } from './CumulusApiClientError';
5
7
  import * as types from './types';
6
8
 
@@ -21,7 +23,12 @@ const logger = new Logger({ sender: '@api-client/cumulusApiClient' });
21
23
  export async function invokeApi(
22
24
  params: types.InvokeApiFunctionParams
23
25
  ): Promise<types.ApiGatewayLambdaHttpProxyResponse> {
24
- const { prefix, payload, pRetryOptions = {} } = params;
26
+ const {
27
+ prefix,
28
+ payload,
29
+ expectedStatusCode = 200,
30
+ pRetryOptions = {},
31
+ } = params;
25
32
 
26
33
  return await pRetry(
27
34
  async () => {
@@ -38,10 +45,19 @@ export async function invokeApi(
38
45
 
39
46
  if (parsedPayload?.errorMessage?.includes('Task timed out')) {
40
47
  throw new CumulusApiClientError(
41
- `Error calling ${payload.path}: ${parsedPayload.errorMessage}`
48
+ `Error calling ${payload.path}: ${parsedPayload.errorMessage}`,
49
+ parsedPayload?.statusCode,
50
+ undefined
42
51
  );
43
52
  }
44
53
 
54
+ if (parsedPayload?.statusCode !== expectedStatusCode) {
55
+ throw new CumulusApiClientError(
56
+ `${payload.path} returned ${parsedPayload.statusCode}: ${parsedPayload.body}`,
57
+ parsedPayload?.statusCode,
58
+ parsedPayload.body
59
+ );
60
+ }
45
61
  return parsedPayload;
46
62
  },
47
63
  {
@@ -32,5 +32,6 @@ export const postRecoverCumulusMessages = async (params: {
32
32
  path: '/deadLetterArchive/recoverCumulusMessages',
33
33
  body: JSON.stringify(payload),
34
34
  },
35
+ expectedStatusCode: 202,
35
36
  });
36
37
  };
package/src/executions.ts CHANGED
@@ -118,3 +118,69 @@ export const deleteExecution = async (params: {
118
118
  },
119
119
  });
120
120
  };
121
+
122
+ /**
123
+ * Search executions by granules
124
+ * POST /executions/search-by-granules
125
+ * @param {Object} params - params
126
+ * @param {Object} params.body - body to pass the API lambda
127
+ * @param {Function} params.callback - async function to invoke the api lambda
128
+ * that takes a prefix / user payload. Defaults
129
+ * to cumulusApiClient.invokeApifunction to invoke the
130
+ * api lambda
131
+ * @returns {Promise<Object>} - the response from the callback
132
+ */
133
+ export const searchExecutionsByGranules = async (params: {
134
+ prefix: string,
135
+ payload: object,
136
+ callback?: InvokeApiFunction
137
+ }): Promise<ApiGatewayLambdaHttpProxyResponse> => {
138
+ const { prefix, payload, callback = invokeApi } = params;
139
+
140
+ return await callback({
141
+ prefix: prefix,
142
+ payload: {
143
+ httpMethod: 'POST',
144
+ resource: '/{proxy+}',
145
+ headers: {
146
+ 'Content-Type': 'application/json',
147
+ },
148
+ path: '/executions/search-by-granules',
149
+ body: JSON.stringify(payload),
150
+ },
151
+ expectedStatusCode: 202,
152
+ });
153
+ };
154
+
155
+ /**
156
+ * Gets common workflows for a set of granules
157
+ * POST /executions/workflows-by-granules
158
+ * @param {Object} params - params
159
+ * @param {Object} params.body - body to pass the API lambda
160
+ * @param {Function} params.callback - async function to invoke the api lambda
161
+ * that takes a prefix / user payload. Defaults
162
+ * to cumulusApiClient.invokeApifunction to invoke the
163
+ * api lambda
164
+ * @returns {Promise<Object>} - the response from the callback
165
+ */
166
+ export const workflowsByGranules = async (params: {
167
+ prefix: string,
168
+ payload: object,
169
+ callback?: InvokeApiFunction
170
+ }): Promise<ApiGatewayLambdaHttpProxyResponse> => {
171
+ const { prefix, payload, callback = invokeApi } = params;
172
+
173
+ return await callback({
174
+ prefix: prefix,
175
+ payload: {
176
+ httpMethod: 'POST',
177
+ resource: '/{proxy+}',
178
+ headers: {
179
+ 'Content-Type': 'application/json',
180
+ },
181
+ path: '/executions/workflows-by-granules',
182
+ body: JSON.stringify(payload),
183
+ },
184
+ expectedStatusCode: 202,
185
+ });
186
+ };
package/src/granules.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import pRetry from 'p-retry';
2
- import Logger from '@cumulus/logger';
2
+
3
3
  import { ApiGranule, GranuleId, GranuleStatus } from '@cumulus/types/api/granules';
4
+ import Logger from '@cumulus/logger';
5
+
4
6
  import { invokeApi } from './cumulusApiClient';
5
7
  import { ApiGatewayLambdaHttpProxyResponse, InvokeApiFunction } from './types';
6
8
 
@@ -25,7 +27,12 @@ export const getGranuleResponse = async (params: {
25
27
  query?: { [key: string]: string },
26
28
  callback?: InvokeApiFunction
27
29
  }): Promise<ApiGatewayLambdaHttpProxyResponse> => {
28
- const { prefix, granuleId, query, callback = invokeApi } = params;
30
+ const {
31
+ prefix,
32
+ granuleId,
33
+ query,
34
+ callback = invokeApi,
35
+ } = params;
29
36
 
30
37
  return await callback({
31
38
  prefix: prefix,
@@ -125,21 +132,25 @@ export const waitForGranule = async (params: {
125
132
  * Reingest a granule from the Cumulus API
126
133
  * PUT /granules/{}
127
134
  *
128
- * @param {Object} params - params
129
- * @param {string} params.prefix - the prefix configured for the stack
130
- * @param {string} params.granuleId - a granule ID
131
- * @param {Function} params.callback - async function to invoke the api lambda
132
- * that takes a prefix / user payload. Defaults
133
- * to cumulusApiClient.invokeApifunction to invoke the
134
- * api lambda
135
- * @returns {Promise<Object>} - the granule fetched by the API
135
+ * @param {Object} params - params
136
+ * @param {string} params.prefix - the prefix configured for the stack
137
+ * @param {string} params.granuleId - a granule ID
138
+ * @param {string} params.workflowName - Optional WorkflowName
139
+ * @param {string} params.executionArn - Optional executionArn
140
+ * @param {Function} params.callback - async function to invoke the api lambda
141
+ * that takes a prefix / user payload. Defaults
142
+ * to cumulusApiClient.invokeApifunction to invoke the
143
+ * api lambda
144
+ * @returns {Promise<Object>} - the granule fetched by the API
136
145
  */
137
146
  export const reingestGranule = async (params: {
138
147
  prefix: string,
139
148
  granuleId: GranuleId,
149
+ workflowName?: string|undefined,
150
+ executionArn?: string|undefined,
140
151
  callback?: InvokeApiFunction
141
152
  }): Promise<ApiGatewayLambdaHttpProxyResponse> => {
142
- const { prefix, granuleId, callback = invokeApi } = params;
153
+ const { prefix, granuleId, workflowName, executionArn, callback = invokeApi } = params;
143
154
 
144
155
  return await callback({
145
156
  prefix: prefix,
@@ -150,7 +161,11 @@ export const reingestGranule = async (params: {
150
161
  headers: {
151
162
  'Content-Type': 'application/json',
152
163
  },
153
- body: JSON.stringify({ action: 'reingest' }),
164
+ body: JSON.stringify({
165
+ action: 'reingest',
166
+ workflowName,
167
+ executionArn,
168
+ }),
154
169
  },
155
170
  });
156
171
  };
@@ -236,22 +251,28 @@ export const applyWorkflow = async (params: {
236
251
  * Delete a granule from Cumulus via the API lambda
237
252
  * DELETE /granules/${granuleId}
238
253
  *
239
- * @param {Object} params - params
240
- * @param {string} params.prefix - the prefix configured for the stack
241
- * @param {string} params.granuleId - a granule ID
242
- * @param {Function} params.callback - async function to invoke the api lambda
243
- * that takes a prefix / user payload. Defaults
244
- * to cumulusApiClient.invokeApifunction to invoke the
245
- * api lambda
246
- * @returns {Promise<Object>} - the delete confirmation from the API
254
+ * @param {Object} params - params
255
+ * @param {pRetry.Options} params.pRetryObject - pRetry options object
256
+ * @param {string} params.prefix - the prefix configured for the stack
257
+ * @param {string} params.granuleId - a granule ID
258
+ * @param {Function} params.callback - async function to invoke the api lambda
259
+ * that takes a prefix / user payload. Defaults
260
+ * to cumulusApiClient.invokeApifunction to invoke the
261
+ * api lambda
262
+ * @returns {Promise<Object>} - the delete confirmation from the API
247
263
  */
248
264
  export const deleteGranule = async (params: {
249
265
  prefix: string,
250
266
  granuleId: GranuleId,
267
+ pRetryOptions?: pRetry.Options,
251
268
  callback?: InvokeApiFunction
252
269
  }): Promise<ApiGatewayLambdaHttpProxyResponse> => {
253
- const { prefix, granuleId, callback = invokeApi } = params;
254
-
270
+ const {
271
+ pRetryOptions,
272
+ prefix,
273
+ granuleId,
274
+ callback = invokeApi,
275
+ } = params;
255
276
  return await callback({
256
277
  prefix: prefix,
257
278
  payload: {
@@ -259,6 +280,7 @@ export const deleteGranule = async (params: {
259
280
  resource: '/{proxy+}',
260
281
  path: `/granules/${granuleId}`,
261
282
  },
283
+ pRetryOptions,
262
284
  });
263
285
  };
264
286
 
@@ -388,6 +410,7 @@ export const bulkGranules = async (params: {
388
410
  path: '/granules/bulk',
389
411
  body: JSON.stringify(body),
390
412
  },
413
+ expectedStatusCode: 202,
391
414
  });
392
415
  };
393
416
 
@@ -420,6 +443,7 @@ export const bulkDeleteGranules = async (params: {
420
443
  path: '/granules/bulkDelete',
421
444
  body: JSON.stringify(body),
422
445
  },
446
+ expectedStatusCode: 202,
423
447
  });
424
448
  };
425
449
 
@@ -441,6 +465,7 @@ export const bulkReingestGranules = async (params: {
441
465
  path: '/granules/bulkReingest',
442
466
  body: JSON.stringify(body),
443
467
  },
468
+ expectedStatusCode: 202,
444
469
  });
445
470
  };
446
471
 
@@ -476,5 +501,6 @@ export const bulkOperation = async (params: {
476
501
  },
477
502
  body: JSON.stringify({ ids, workflowName }),
478
503
  },
504
+ expectedStatusCode: 202,
479
505
  });
480
506
  };
package/src/index.ts CHANGED
@@ -1,8 +1,6 @@
1
- // eslint-disable-next-line import/export
2
1
  export * as cumulusApiClient from './cumulusApiClient';
3
2
  export * as asyncOperations from './asyncOperations';
4
3
  export * as granules from './granules';
5
- // eslint-disable-next-line import/export
6
4
  export { invokeApi } from './cumulusApiClient';
7
5
  export * as rules from './rules';
8
6
  export * as collections from './collections';
@@ -10,4 +8,5 @@ export * as executions from './executions';
10
8
  export * as pdrs from './pdrs';
11
9
  export * as providers from './providers';
12
10
  export * as reconciliationReports from './reconciliationReports';
11
+ export * as replays from './replays';
13
12
  export * as types from './types';
@@ -32,5 +32,6 @@ export const postMigrationCounts = async (params: {
32
32
  path: '/migrationCounts',
33
33
  body: JSON.stringify(payload),
34
34
  },
35
+ expectedStatusCode: 202,
35
36
  });
36
37
  };
package/src/pdrs.ts CHANGED
@@ -2,6 +2,34 @@ import { ApiPdr } from '@cumulus/types/api/pdrs';
2
2
  import { invokeApi } from './cumulusApiClient';
3
3
  import { ApiGatewayLambdaHttpProxyResponse, InvokeApiFunction } from './types';
4
4
 
5
+ /**
6
+ * Delete a PDR from the Cumulus API
7
+ *
8
+ * @param {Object} params - params
9
+ * @param {string} params.prefix - the prefix configured for the stack
10
+ * @param {string} params.pdrName - a PDR name
11
+ * @param {Function} params.callback - async function to invoke the api lambda
12
+ * that takes a prefix / user payload. Defaults
13
+ * to cumulusApiClient.invokeApi
14
+ * @returns {Promise<Object>} - the execution fetched by the API
15
+ */
16
+ export const deletePdr = async (params: {
17
+ prefix: string,
18
+ pdrName: string,
19
+ callback?: InvokeApiFunction
20
+ }): Promise<ApiGatewayLambdaHttpProxyResponse> => {
21
+ const { prefix, pdrName, callback = invokeApi } = params;
22
+
23
+ return await callback({
24
+ prefix,
25
+ payload: {
26
+ httpMethod: 'DELETE',
27
+ resource: '/{proxy+}',
28
+ path: `/pdrs/${pdrName}`,
29
+ },
30
+ });
31
+ };
32
+
5
33
  /**
6
34
  * Fetch a PDR from the Cumulus API
7
35
  *
@@ -25,7 +53,7 @@ export const getPdr = async (params: {
25
53
  payload: {
26
54
  httpMethod: 'GET',
27
55
  resource: '/{proxy+}',
28
- path: `/pdr/${pdrName}`,
56
+ path: `/pdrs/${pdrName}`,
29
57
  },
30
58
  });
31
59
 
@@ -18,7 +18,11 @@ export const getReconciliationReport = async (params: {
18
18
  name: string,
19
19
  callback?: InvokeApiFunction
20
20
  }): Promise<ApiGatewayLambdaHttpProxyResponse> => {
21
- const { prefix, name, callback = invokeApi } = params;
21
+ const {
22
+ prefix,
23
+ name,
24
+ callback = invokeApi,
25
+ } = params;
22
26
 
23
27
  return await callback({
24
28
  prefix: prefix,
@@ -77,7 +81,11 @@ export async function createReconciliationReport(params: {
77
81
  request: unknown,
78
82
  callback?: InvokeApiFunction
79
83
  }): Promise<ApiGatewayLambdaHttpProxyResponse> {
80
- const { prefix, request, callback = invokeApi } = params;
84
+ const {
85
+ prefix,
86
+ request,
87
+ callback = invokeApi,
88
+ } = params;
81
89
 
82
90
  return await callback({
83
91
  prefix: prefix,
@@ -90,5 +98,6 @@ export async function createReconciliationReport(params: {
90
98
  path: '/reconciliationReports',
91
99
  body: JSON.stringify(request),
92
100
  },
101
+ expectedStatusCode: 202,
93
102
  });
94
103
  }
package/src/replays.ts ADDED
@@ -0,0 +1,72 @@
1
+ import { MigrationCountsPayload } from '@cumulus/types/api/migrationCounts';
2
+ import { ReplaySqsMessagesPayload } from '@cumulus/types/api/replaySqsMessages';
3
+ import { invokeApi } from './cumulusApiClient';
4
+ import { ApiGatewayLambdaHttpProxyResponse, InvokeApiFunction } from './types';
5
+
6
+ /**
7
+ * POST a request to start a replay of Kinesis message
8
+ *
9
+ * @param {Object} params - params
10
+ * @param {string} params.prefix - the prefix configured for the stack
11
+ * @param {Object} params.payload - payload to post to the endpoint
12
+ * @param {Function} params.callback - async function to invoke the api lambda
13
+ * that takes a prefix / user payload. Defaults
14
+ * to cumulusApiClient.invokeApi
15
+ * @returns {Promise<Object>} - promise that resolves to the output
16
+ * of the API lambda
17
+ */
18
+ export const postKinesisReplays = async (params: {
19
+ prefix: string,
20
+ payload: MigrationCountsPayload
21
+ callback?: InvokeApiFunction
22
+ }): Promise<ApiGatewayLambdaHttpProxyResponse> => {
23
+ const { prefix, payload, callback = invokeApi } = params;
24
+
25
+ return await callback({
26
+ prefix,
27
+ payload: {
28
+ httpMethod: 'POST',
29
+ resource: '/{proxy+}',
30
+ headers: {
31
+ 'Content-Type': 'application/json',
32
+ },
33
+ path: '/replays',
34
+ body: JSON.stringify(payload),
35
+ },
36
+ expectedStatusCode: 202,
37
+ });
38
+ };
39
+
40
+ /**
41
+ * POST a request to start replaying archived SQS Messages
42
+ *
43
+ * @param {Object} params - params
44
+ * @param {string} params.prefix - the prefix configured for the stack
45
+ * @param {Object} params.payload - payload to post to the endpoint
46
+ * @param {Function} params.callback - async function to invoke the api lambda
47
+ * that takes a prefix / user payload. Defaults
48
+ * to cumulusApiClient.invokeApi
49
+ * @returns {Promise<Object>} - promise that resolves to the output
50
+ * of the API lambda
51
+ */
52
+ export const replaySqsMessages = async (params: {
53
+ prefix: string,
54
+ payload: ReplaySqsMessagesPayload,
55
+ callback?: InvokeApiFunction,
56
+ }): Promise<ApiGatewayLambdaHttpProxyResponse> => {
57
+ const { payload, prefix, callback = invokeApi } = params;
58
+
59
+ return await callback({
60
+ prefix,
61
+ payload: {
62
+ httpMethod: 'POST',
63
+ resource: '/{proxy+}',
64
+ headers: {
65
+ 'Content-Type': 'application/json',
66
+ },
67
+ path: '/replays/sqs',
68
+ body: JSON.stringify(payload),
69
+ },
70
+ expectedStatusCode: 202,
71
+ });
72
+ };
package/src/rules.ts CHANGED
@@ -118,7 +118,11 @@ export const getRule = async (params: {
118
118
  ruleName: string,
119
119
  callback: InvokeApiFunction
120
120
  }): Promise<ApiGatewayLambdaHttpProxyResponse> => {
121
- const { prefix, ruleName, callback = invokeApi } = params;
121
+ const {
122
+ prefix,
123
+ ruleName,
124
+ callback = invokeApi,
125
+ } = params;
122
126
 
123
127
  return await callback({
124
128
  prefix,