cloudstructs 0.3.1 → 0.4.3

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 (179) hide show
  1. package/.jsii +1431 -113
  2. package/API.md +343 -2
  3. package/assets/codecommit-mirror/docker/mirror.sh +0 -0
  4. package/changelog.md +2 -0
  5. package/lib/codecommit-mirror/index.js +4 -5
  6. package/lib/ecs-service-roller/index.js +2 -2
  7. package/lib/email-receiver/receiver.js +1 -1
  8. package/lib/saml-identity-provider/index.js +2 -2
  9. package/lib/slack-app/index.d.ts +2 -95
  10. package/lib/slack-app/index.js +13 -47
  11. package/lib/slack-app/manifest.d.ts +482 -0
  12. package/lib/slack-app/manifest.js +198 -0
  13. package/lib/slack-app/provider.handler.js +4 -3
  14. package/lib/slack-app/slack-app.d.ts +127 -0
  15. package/lib/slack-app/slack-app.js +103 -0
  16. package/lib/slack-events/index.js +1 -1
  17. package/lib/slack-textract/index.js +1 -1
  18. package/lib/state-machine-cr-provider/index.js +1 -1
  19. package/lib/static-website/index.js +1 -1
  20. package/lib/url-shortener/index.js +1 -1
  21. package/node_modules/@sindresorhus/is/dist/index.d.ts +4 -2
  22. package/node_modules/@sindresorhus/is/dist/index.js +3 -1
  23. package/node_modules/@sindresorhus/is/package.json +1 -1
  24. package/node_modules/@sindresorhus/is/readme.md +23 -0
  25. package/node_modules/@slack/logger/node_modules/@types/node/README.md +2 -2
  26. package/node_modules/@slack/logger/node_modules/@types/node/assert.d.ts +1 -1
  27. package/node_modules/@slack/logger/node_modules/@types/node/async_hooks.d.ts +7 -3
  28. package/node_modules/@slack/logger/node_modules/@types/node/buffer.d.ts +9 -9
  29. package/node_modules/@slack/logger/node_modules/@types/node/child_process.d.ts +1 -1
  30. package/node_modules/@slack/logger/node_modules/@types/node/cluster.d.ts +1 -1
  31. package/node_modules/@slack/logger/node_modules/@types/node/console.d.ts +1 -1
  32. package/node_modules/@slack/logger/node_modules/@types/node/crypto.d.ts +2 -2
  33. package/node_modules/@slack/logger/node_modules/@types/node/dgram.d.ts +2 -2
  34. package/node_modules/@slack/logger/node_modules/@types/node/diagnostics_channel.d.ts +1 -1
  35. package/node_modules/@slack/logger/node_modules/@types/node/dns/promises.d.ts +12 -10
  36. package/node_modules/@slack/logger/node_modules/@types/node/dns.d.ts +17 -12
  37. package/node_modules/@slack/logger/node_modules/@types/node/domain.d.ts +1 -1
  38. package/node_modules/@slack/logger/node_modules/@types/node/events.d.ts +2 -2
  39. package/node_modules/@slack/logger/node_modules/@types/node/fs/promises.d.ts +5 -5
  40. package/node_modules/@slack/logger/node_modules/@types/node/fs.d.ts +62 -11
  41. package/node_modules/@slack/logger/node_modules/@types/node/globals.d.ts +3 -3
  42. package/node_modules/@slack/logger/node_modules/@types/node/http.d.ts +31 -4
  43. package/node_modules/@slack/logger/node_modules/@types/node/http2.d.ts +6 -6
  44. package/node_modules/@slack/logger/node_modules/@types/node/https.d.ts +1 -1
  45. package/node_modules/@slack/logger/node_modules/@types/node/index.d.ts +1 -2
  46. package/node_modules/@slack/logger/node_modules/@types/node/inspector.d.ts +4 -5
  47. package/node_modules/@slack/logger/node_modules/@types/node/net.d.ts +15 -14
  48. package/node_modules/@slack/logger/node_modules/@types/node/os.d.ts +1 -1
  49. package/node_modules/@slack/logger/node_modules/@types/node/package.json +2 -7
  50. package/node_modules/@slack/logger/node_modules/@types/node/path.d.ts +9 -1
  51. package/node_modules/@slack/logger/node_modules/@types/node/perf_hooks.d.ts +6 -4
  52. package/node_modules/@slack/logger/node_modules/@types/node/process.d.ts +1 -1
  53. package/node_modules/@slack/logger/node_modules/@types/node/punycode.d.ts +1 -1
  54. package/node_modules/@slack/logger/node_modules/@types/node/querystring.d.ts +1 -1
  55. package/node_modules/@slack/logger/node_modules/@types/node/readline.d.ts +121 -14
  56. package/node_modules/@slack/logger/node_modules/@types/node/repl.d.ts +1 -1
  57. package/node_modules/@slack/logger/node_modules/@types/node/stream/web.d.ts +3 -65
  58. package/node_modules/@slack/logger/node_modules/@types/node/stream.d.ts +10 -10
  59. package/node_modules/@slack/logger/node_modules/@types/node/string_decoder.d.ts +1 -1
  60. package/node_modules/@slack/logger/node_modules/@types/node/timers.d.ts +1 -1
  61. package/node_modules/@slack/logger/node_modules/@types/node/tls.d.ts +3 -2
  62. package/node_modules/@slack/logger/node_modules/@types/node/trace_events.d.ts +1 -1
  63. package/node_modules/@slack/logger/node_modules/@types/node/tty.d.ts +1 -1
  64. package/node_modules/@slack/logger/node_modules/@types/node/url.d.ts +58 -18
  65. package/node_modules/@slack/logger/node_modules/@types/node/util.d.ts +3 -3
  66. package/node_modules/@slack/logger/node_modules/@types/node/v8.d.ts +3 -3
  67. package/node_modules/@slack/logger/node_modules/@types/node/vm.d.ts +1 -1
  68. package/node_modules/@slack/logger/node_modules/@types/node/wasi.d.ts +1 -1
  69. package/node_modules/@slack/logger/node_modules/@types/node/worker_threads.d.ts +4 -4
  70. package/node_modules/@slack/logger/node_modules/@types/node/zlib.d.ts +1 -1
  71. package/node_modules/@slack/web-api/node_modules/@types/node/README.md +2 -2
  72. package/node_modules/@slack/web-api/node_modules/@types/node/assert.d.ts +1 -1
  73. package/node_modules/@slack/web-api/node_modules/@types/node/async_hooks.d.ts +7 -3
  74. package/node_modules/@slack/web-api/node_modules/@types/node/buffer.d.ts +9 -9
  75. package/node_modules/@slack/web-api/node_modules/@types/node/child_process.d.ts +1 -1
  76. package/node_modules/@slack/web-api/node_modules/@types/node/cluster.d.ts +1 -1
  77. package/node_modules/@slack/web-api/node_modules/@types/node/console.d.ts +1 -1
  78. package/node_modules/@slack/web-api/node_modules/@types/node/crypto.d.ts +2 -2
  79. package/node_modules/@slack/web-api/node_modules/@types/node/dgram.d.ts +2 -2
  80. package/node_modules/@slack/web-api/node_modules/@types/node/diagnostics_channel.d.ts +1 -1
  81. package/node_modules/@slack/web-api/node_modules/@types/node/dns/promises.d.ts +12 -10
  82. package/node_modules/@slack/web-api/node_modules/@types/node/dns.d.ts +17 -12
  83. package/node_modules/@slack/web-api/node_modules/@types/node/domain.d.ts +1 -1
  84. package/node_modules/@slack/web-api/node_modules/@types/node/events.d.ts +2 -2
  85. package/node_modules/@slack/web-api/node_modules/@types/node/fs/promises.d.ts +5 -5
  86. package/node_modules/@slack/web-api/node_modules/@types/node/fs.d.ts +62 -11
  87. package/node_modules/@slack/web-api/node_modules/@types/node/globals.d.ts +3 -3
  88. package/node_modules/@slack/web-api/node_modules/@types/node/http.d.ts +31 -4
  89. package/node_modules/@slack/web-api/node_modules/@types/node/http2.d.ts +6 -6
  90. package/node_modules/@slack/web-api/node_modules/@types/node/https.d.ts +1 -1
  91. package/node_modules/@slack/web-api/node_modules/@types/node/index.d.ts +1 -2
  92. package/node_modules/@slack/web-api/node_modules/@types/node/inspector.d.ts +4 -5
  93. package/node_modules/@slack/web-api/node_modules/@types/node/net.d.ts +15 -14
  94. package/node_modules/@slack/web-api/node_modules/@types/node/os.d.ts +1 -1
  95. package/node_modules/@slack/web-api/node_modules/@types/node/package.json +2 -7
  96. package/node_modules/@slack/web-api/node_modules/@types/node/path.d.ts +9 -1
  97. package/node_modules/@slack/web-api/node_modules/@types/node/perf_hooks.d.ts +6 -4
  98. package/node_modules/@slack/web-api/node_modules/@types/node/process.d.ts +1 -1
  99. package/node_modules/@slack/web-api/node_modules/@types/node/punycode.d.ts +1 -1
  100. package/node_modules/@slack/web-api/node_modules/@types/node/querystring.d.ts +1 -1
  101. package/node_modules/@slack/web-api/node_modules/@types/node/readline.d.ts +121 -14
  102. package/node_modules/@slack/web-api/node_modules/@types/node/repl.d.ts +1 -1
  103. package/node_modules/@slack/web-api/node_modules/@types/node/stream/web.d.ts +3 -65
  104. package/node_modules/@slack/web-api/node_modules/@types/node/stream.d.ts +10 -10
  105. package/node_modules/@slack/web-api/node_modules/@types/node/string_decoder.d.ts +1 -1
  106. package/node_modules/@slack/web-api/node_modules/@types/node/timers.d.ts +1 -1
  107. package/node_modules/@slack/web-api/node_modules/@types/node/tls.d.ts +3 -2
  108. package/node_modules/@slack/web-api/node_modules/@types/node/trace_events.d.ts +1 -1
  109. package/node_modules/@slack/web-api/node_modules/@types/node/tty.d.ts +1 -1
  110. package/node_modules/@slack/web-api/node_modules/@types/node/url.d.ts +58 -18
  111. package/node_modules/@slack/web-api/node_modules/@types/node/util.d.ts +3 -3
  112. package/node_modules/@slack/web-api/node_modules/@types/node/v8.d.ts +3 -3
  113. package/node_modules/@slack/web-api/node_modules/@types/node/vm.d.ts +1 -1
  114. package/node_modules/@slack/web-api/node_modules/@types/node/wasi.d.ts +1 -1
  115. package/node_modules/@slack/web-api/node_modules/@types/node/worker_threads.d.ts +4 -4
  116. package/node_modules/@slack/web-api/node_modules/@types/node/zlib.d.ts +1 -1
  117. package/node_modules/@types/cacheable-request/node_modules/@types/node/README.md +2 -2
  118. package/node_modules/@types/cacheable-request/node_modules/@types/node/globals.d.ts +3 -3
  119. package/node_modules/@types/cacheable-request/node_modules/@types/node/http.d.ts +11 -1
  120. package/node_modules/@types/cacheable-request/node_modules/@types/node/http2.d.ts +3 -3
  121. package/node_modules/@types/cacheable-request/node_modules/@types/node/index.d.ts +0 -1
  122. package/node_modules/@types/cacheable-request/node_modules/@types/node/net.d.ts +4 -3
  123. package/node_modules/@types/cacheable-request/node_modules/@types/node/package.json +2 -7
  124. package/node_modules/@types/cacheable-request/node_modules/@types/node/path.d.ts +8 -0
  125. package/node_modules/@types/cacheable-request/node_modules/@types/node/perf_hooks.d.ts +2 -0
  126. package/node_modules/@types/cacheable-request/node_modules/@types/node/process.d.ts +1 -1
  127. package/node_modules/@types/cacheable-request/node_modules/@types/node/stream.d.ts +8 -8
  128. package/node_modules/@types/cacheable-request/node_modules/@types/node/tls.d.ts +2 -1
  129. package/node_modules/@types/is-stream/node_modules/@types/node/README.md +2 -2
  130. package/node_modules/@types/is-stream/node_modules/@types/node/globals.d.ts +3 -3
  131. package/node_modules/@types/is-stream/node_modules/@types/node/http.d.ts +11 -1
  132. package/node_modules/@types/is-stream/node_modules/@types/node/http2.d.ts +3 -3
  133. package/node_modules/@types/is-stream/node_modules/@types/node/index.d.ts +0 -1
  134. package/node_modules/@types/is-stream/node_modules/@types/node/net.d.ts +4 -3
  135. package/node_modules/@types/is-stream/node_modules/@types/node/package.json +2 -7
  136. package/node_modules/@types/is-stream/node_modules/@types/node/path.d.ts +8 -0
  137. package/node_modules/@types/is-stream/node_modules/@types/node/perf_hooks.d.ts +2 -0
  138. package/node_modules/@types/is-stream/node_modules/@types/node/process.d.ts +1 -1
  139. package/node_modules/@types/is-stream/node_modules/@types/node/stream.d.ts +8 -8
  140. package/node_modules/@types/is-stream/node_modules/@types/node/tls.d.ts +2 -1
  141. package/node_modules/@types/keyv/node_modules/@types/node/README.md +2 -2
  142. package/node_modules/@types/keyv/node_modules/@types/node/globals.d.ts +3 -3
  143. package/node_modules/@types/keyv/node_modules/@types/node/http.d.ts +11 -1
  144. package/node_modules/@types/keyv/node_modules/@types/node/http2.d.ts +3 -3
  145. package/node_modules/@types/keyv/node_modules/@types/node/index.d.ts +0 -1
  146. package/node_modules/@types/keyv/node_modules/@types/node/net.d.ts +4 -3
  147. package/node_modules/@types/keyv/node_modules/@types/node/package.json +2 -7
  148. package/node_modules/@types/keyv/node_modules/@types/node/path.d.ts +8 -0
  149. package/node_modules/@types/keyv/node_modules/@types/node/perf_hooks.d.ts +2 -0
  150. package/node_modules/@types/keyv/node_modules/@types/node/process.d.ts +1 -1
  151. package/node_modules/@types/keyv/node_modules/@types/node/stream.d.ts +8 -8
  152. package/node_modules/@types/keyv/node_modules/@types/node/tls.d.ts +2 -1
  153. package/node_modules/@types/responselike/node_modules/@types/node/README.md +2 -2
  154. package/node_modules/@types/responselike/node_modules/@types/node/globals.d.ts +3 -3
  155. package/node_modules/@types/responselike/node_modules/@types/node/http.d.ts +11 -1
  156. package/node_modules/@types/responselike/node_modules/@types/node/http2.d.ts +3 -3
  157. package/node_modules/@types/responselike/node_modules/@types/node/index.d.ts +0 -1
  158. package/node_modules/@types/responselike/node_modules/@types/node/net.d.ts +4 -3
  159. package/node_modules/@types/responselike/node_modules/@types/node/package.json +2 -7
  160. package/node_modules/@types/responselike/node_modules/@types/node/path.d.ts +8 -0
  161. package/node_modules/@types/responselike/node_modules/@types/node/perf_hooks.d.ts +2 -0
  162. package/node_modules/@types/responselike/node_modules/@types/node/process.d.ts +1 -1
  163. package/node_modules/@types/responselike/node_modules/@types/node/stream.d.ts +8 -8
  164. package/node_modules/@types/responselike/node_modules/@types/node/tls.d.ts +2 -1
  165. package/node_modules/follow-redirects/index.js +2 -2
  166. package/node_modules/follow-redirects/package.json +1 -1
  167. package/node_modules/keyv/.nyc_output/37411020-4142-4b08-b825-343ba2427bf7.json +1 -0
  168. package/node_modules/keyv/.nyc_output/cd79f2de-c8b8-4493-bc15-b2bde28efa4b.json +1 -0
  169. package/node_modules/keyv/.nyc_output/processinfo/37411020-4142-4b08-b825-343ba2427bf7.json +1 -0
  170. package/node_modules/keyv/.nyc_output/processinfo/cd79f2de-c8b8-4493-bc15-b2bde28efa4b.json +1 -0
  171. package/node_modules/keyv/.nyc_output/processinfo/index.json +1 -0
  172. package/node_modules/keyv/README.md +9 -8
  173. package/node_modules/keyv/package.json +5 -7
  174. package/node_modules/keyv/test/test.js +132 -0
  175. package/node_modules/keyv/test/testdb.sqlite +0 -0
  176. package/package.json +19 -16
  177. package/releasetag.txt +1 -0
  178. package/version.txt +1 -0
  179. package/node_modules/keyv/LICENSE +0 -21
@@ -1,95 +1,2 @@
1
- import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager';
2
- import { Construct } from 'constructs';
3
- /**
4
- * Properties for a SlackApp.
5
- *
6
- * @stability stable
7
- */
8
- export interface SlackAppProps {
9
- /**
10
- * The JSON app manifest encoded as a string.
11
- *
12
- * @see https://api.slack.com/reference/manifests
13
- * @stability stable
14
- */
15
- readonly manifest: string;
16
- /**
17
- * An AWS Secrets Manager secret containing the app configuration token.
18
- *
19
- * Must use the following JSON format:
20
- *
21
- * ```
22
- * {
23
- * "refreshToken": "<token>"
24
- * }
25
- * ```
26
- *
27
- * @stability stable
28
- */
29
- readonly configurationTokenSecret: secretsmanager.ISecret;
30
- /**
31
- * The AWS Secrets Manager secret where to store the app credentials.
32
- *
33
- * @default - a new secret is created
34
- * @stability stable
35
- */
36
- readonly credentialsSecret?: secretsmanager.ISecret;
37
- }
38
- /**
39
- * A Slack application deployed with a manifest.
40
- *
41
- * @see https://api.slack.com/reference/manifests
42
- * @stability stable
43
- */
44
- export declare class SlackApp extends Construct {
45
- /**
46
- * The ID of the application.
47
- *
48
- * @stability stable
49
- */
50
- readonly appId: string;
51
- /**
52
- * An AWS Secrets Manager secret containing the credentials of the application.
53
- *
54
- * ```
55
- * {
56
- * "appId": "...",
57
- * "clientId": "...",
58
- * "clientSecret": "...",
59
- * "verificationToken": "...",
60
- * "signingSecret": "..."
61
- * }
62
- * ```
63
- *
64
- * @stability stable
65
- */
66
- readonly credentials: secretsmanager.ISecret;
67
- /**
68
- * A dynamic reference to the client ID of the app.
69
- *
70
- * @stability stable
71
- */
72
- readonly clientId: string;
73
- /**
74
- * A dynamic reference to the client secret of the app.
75
- *
76
- * @stability stable
77
- */
78
- readonly clientSecret: string;
79
- /**
80
- * A dynamic reference to the verification token of the app.
81
- *
82
- * @stability stable
83
- */
84
- readonly verificationToken: string;
85
- /**
86
- * A dynamic reference to the signing secret of the app.
87
- *
88
- * @stability stable
89
- */
90
- readonly signingSecret: string;
91
- /**
92
- * @stability stable
93
- */
94
- constructor(scope: Construct, id: string, props: SlackAppProps);
95
- }
1
+ export * from './slack-app';
2
+ export * from './manifest';
@@ -1,49 +1,15 @@
1
1
  "use strict";
2
- var _a;
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
+ };
3
12
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.SlackApp = void 0;
5
- const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const aws_cdk_lib_1 = require("aws-cdk-lib");
7
- const secretsmanager = require("aws-cdk-lib/aws-secretsmanager");
8
- const constructs_1 = require("constructs");
9
- const provider_1 = require("./provider");
10
- /**
11
- * A Slack application deployed with a manifest.
12
- *
13
- * @see https://api.slack.com/reference/manifests
14
- * @stability stable
15
- */
16
- class SlackApp extends constructs_1.Construct {
17
- /**
18
- * @stability stable
19
- */
20
- constructor(scope, id, props) {
21
- var _b;
22
- super(scope, id);
23
- const provider = provider_1.SlackAppProvider.getOrCreate(this);
24
- props.configurationTokenSecret.grantRead(provider.handler);
25
- props.configurationTokenSecret.grantWrite(provider.handler);
26
- this.credentials = (_b = props.credentialsSecret) !== null && _b !== void 0 ? _b : new secretsmanager.Secret(this, 'Credentials', {
27
- description: `Credentials for Slack App ${this.node.id}`,
28
- });
29
- this.credentials.grantWrite(provider.handler);
30
- const resource = new aws_cdk_lib_1.CustomResource(this, 'Resource', {
31
- serviceToken: provider.serviceToken,
32
- resourceType: 'Custom::SlackApp',
33
- properties: {
34
- manifest: props.manifest,
35
- configurationTokenSecretArn: props.configurationTokenSecret.secretArn,
36
- credentialsSecretArn: this.credentials.secretArn,
37
- },
38
- });
39
- this.appId = resource.getAttString('appId');
40
- this.clientId = this.credentials.secretValueFromJson('clientId').toString();
41
- this.clientSecret = this.credentials.secretValueFromJson('clientSecret').toString();
42
- this.verificationToken = this.credentials.secretValueFromJson('verificationToken').toString();
43
- this.signingSecret = this.credentials.secretValueFromJson('signingSecret').toString();
44
- }
45
- }
46
- exports.SlackApp = SlackApp;
47
- _a = JSII_RTTI_SYMBOL_1;
48
- SlackApp[_a] = { fqn: "cloudstructs.SlackApp", version: "0.3.1" };
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2xhY2stYXBwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQTZDO0FBQzdDLGlFQUFpRTtBQUNqRSwyQ0FBdUM7QUFDdkMseUNBQThDOzs7Ozs7O0FBZTlDLE1BQWEsUUFBUyxTQUFRLHNCQUFTOzs7O0lBbUJyQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW9COztRQUM1RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sUUFBUSxHQUFHLDJCQUFnQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRCxLQUFLLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU1RCxJQUFJLENBQUMsV0FBVyxTQUFHLEtBQUssQ0FBQyxpQkFBaUIsbUNBQUksSUFBSSxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUU7WUFDM0YsV0FBVyxFQUFFLDZCQUE2QixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRTtTQUN6RCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFOUMsTUFBTSxRQUFRLEdBQUcsSUFBSSw0QkFBYyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDcEQsWUFBWSxFQUFFLFFBQVEsQ0FBQyxZQUFZO1lBQ25DLFlBQVksRUFBRSxrQkFBa0I7WUFDaEMsVUFBVSxFQUFFO2dCQUNWLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtnQkFDeEIsMkJBQTJCLEVBQUUsS0FBSyxDQUFDLHdCQUF3QixDQUFDLFNBQVM7Z0JBQ3JFLG9CQUFvQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUzthQUNqRDtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3BGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3hGLENBQUM7O0FBOUNILDRCQStDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1c3RvbVJlc291cmNlIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgc2VjcmV0c21hbmFnZXIgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgU2xhY2tBcHBQcm92aWRlciB9IGZyb20gJy4vcHJvdmlkZXInO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgU2xhY2tBcHBQcm9wcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IG1hbmlmZXN0OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjb25maWd1cmF0aW9uVG9rZW5TZWNyZXQ6IHNlY3JldHNtYW5hZ2VyLklTZWNyZXQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY3JlZGVudGlhbHNTZWNyZXQ/OiBzZWNyZXRzbWFuYWdlci5JU2VjcmV0O1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBTbGFja0FwcCBleHRlbmRzIENvbnN0cnVjdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGFwcElkOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGNyZWRlbnRpYWxzOiBzZWNyZXRzbWFuYWdlci5JU2VjcmV0O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBjbGllbnRJZDogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgY2xpZW50U2VjcmV0OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IHZlcmlmaWNhdGlvblRva2VuOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgc2lnbmluZ1NlY3JldDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTbGFja0FwcFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHByb3ZpZGVyID0gU2xhY2tBcHBQcm92aWRlci5nZXRPckNyZWF0ZSh0aGlzKTtcbiAgICBwcm9wcy5jb25maWd1cmF0aW9uVG9rZW5TZWNyZXQuZ3JhbnRSZWFkKHByb3ZpZGVyLmhhbmRsZXIpO1xuICAgIHByb3BzLmNvbmZpZ3VyYXRpb25Ub2tlblNlY3JldC5ncmFudFdyaXRlKHByb3ZpZGVyLmhhbmRsZXIpO1xuXG4gICAgdGhpcy5jcmVkZW50aWFscyA9IHByb3BzLmNyZWRlbnRpYWxzU2VjcmV0ID8/IG5ldyBzZWNyZXRzbWFuYWdlci5TZWNyZXQodGhpcywgJ0NyZWRlbnRpYWxzJywge1xuICAgICAgZGVzY3JpcHRpb246IGBDcmVkZW50aWFscyBmb3IgU2xhY2sgQXBwICR7dGhpcy5ub2RlLmlkfWAsXG4gICAgfSk7XG4gICAgdGhpcy5jcmVkZW50aWFscy5ncmFudFdyaXRlKHByb3ZpZGVyLmhhbmRsZXIpO1xuXG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgc2VydmljZVRva2VuOiBwcm92aWRlci5zZXJ2aWNlVG9rZW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdDdXN0b206OlNsYWNrQXBwJyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgbWFuaWZlc3Q6IHByb3BzLm1hbmlmZXN0LFxuICAgICAgICBjb25maWd1cmF0aW9uVG9rZW5TZWNyZXRBcm46IHByb3BzLmNvbmZpZ3VyYXRpb25Ub2tlblNlY3JldC5zZWNyZXRBcm4sXG4gICAgICAgIGNyZWRlbnRpYWxzU2VjcmV0QXJuOiB0aGlzLmNyZWRlbnRpYWxzLnNlY3JldEFybixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmFwcElkID0gcmVzb3VyY2UuZ2V0QXR0U3RyaW5nKCdhcHBJZCcpO1xuICAgIHRoaXMuY2xpZW50SWQgPSB0aGlzLmNyZWRlbnRpYWxzLnNlY3JldFZhbHVlRnJvbUpzb24oJ2NsaWVudElkJykudG9TdHJpbmcoKTtcbiAgICB0aGlzLmNsaWVudFNlY3JldCA9IHRoaXMuY3JlZGVudGlhbHMuc2VjcmV0VmFsdWVGcm9tSnNvbignY2xpZW50U2VjcmV0JykudG9TdHJpbmcoKTtcbiAgICB0aGlzLnZlcmlmaWNhdGlvblRva2VuID0gdGhpcy5jcmVkZW50aWFscy5zZWNyZXRWYWx1ZUZyb21Kc29uKCd2ZXJpZmljYXRpb25Ub2tlbicpLnRvU3RyaW5nKCk7XG4gICAgdGhpcy5zaWduaW5nU2VjcmV0ID0gdGhpcy5jcmVkZW50aWFscy5zZWNyZXRWYWx1ZUZyb21Kc29uKCdzaWduaW5nU2VjcmV0JykudG9TdHJpbmcoKTtcbiAgfVxufVxuIl19
13
+ __exportStar(require("./slack-app"), exports);
14
+ __exportStar(require("./manifest"), exports);
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2xhY2stYXBwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDhDQUE0QjtBQUM1Qiw2Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NsYWNrLWFwcCc7XG5leHBvcnQgKiBmcm9tICcuL21hbmlmZXN0JztcbiJdfQ==
@@ -0,0 +1,482 @@
1
+ import { IConstruct } from 'constructs';
2
+ /**
3
+ * Properties for a Slack app manifest.
4
+ *
5
+ * @see https://api.slack.com/reference/manifests
6
+ * @stability stable
7
+ */
8
+ export interface SlackAppManifestProps {
9
+ /**
10
+ * The name of the app.
11
+ *
12
+ * Maximum length is 35 characters.
13
+ *
14
+ * @stability stable
15
+ */
16
+ readonly name: string;
17
+ /**
18
+ * A short description of the app for display to users.
19
+ *
20
+ * Maximum length is 140 characters.
21
+ *
22
+ * @default - no short description
23
+ * @stability stable
24
+ */
25
+ readonly description?: string;
26
+ /**
27
+ * A longer version of the description of the app.
28
+ *
29
+ * Maximum length is 4000 characters.
30
+ *
31
+ * @stability stable
32
+ */
33
+ readonly longDescription?: string;
34
+ /**
35
+ * A hex color value that specifies the background color used on hovercards that display information about your app.
36
+ *
37
+ * Can be 3-digit (#000) or 6-digit (#000000) hex values with or without #
38
+ *
39
+ * @stability stable
40
+ */
41
+ readonly backgroundColor?: string;
42
+ /**
43
+ * The major version of the manifest schema to target.
44
+ *
45
+ * @default - do not target a specific major version
46
+ * @stability stable
47
+ */
48
+ readonly majorVersion?: number;
49
+ /**
50
+ * The minor version of the manifest schema to target.
51
+ *
52
+ * @default - do not target a specific minor version
53
+ * @stability stable
54
+ */
55
+ readonly minorVersion?: number;
56
+ /**
57
+ * An array of IP addresses that conform to the Allowed IP Ranges feature.
58
+ *
59
+ * @see https://api.slack.com/authentication/best-practices#ip_allowlisting
60
+ * @stability stable
61
+ */
62
+ readonly allowedIpAddressRanges?: string[];
63
+ /**
64
+ * Events API configuration for the app.
65
+ *
66
+ * @see https://api.slack.com/events-api
67
+ * @stability stable
68
+ */
69
+ readonly eventSubscriptions?: SlackAppManifestEventSubscriptions;
70
+ /**
71
+ * Interactivity configuration for the app.
72
+ *
73
+ * @stability stable
74
+ */
75
+ readonly interactivity?: SlackAppManifestInteractivity;
76
+ /**
77
+ * Whether org-wide deploy is enabled.
78
+ *
79
+ * @default false
80
+ * @see https://api.slack.com/enterprise/apps
81
+ * @stability stable
82
+ */
83
+ readonly orgDeploy?: boolean;
84
+ /**
85
+ * Whether Socket Mode is enabled.
86
+ *
87
+ * @default false
88
+ * @see https://api.slack.com/apis/connections/socket
89
+ * @stability stable
90
+ */
91
+ readonly socketMode?: boolean;
92
+ /**
93
+ * App Home configuration.
94
+ *
95
+ * @see https://api.slack.com/surfaces/tabs
96
+ * @stability stable
97
+ */
98
+ readonly appHome?: SlackAppManifestAppHome;
99
+ /**
100
+ * Bot user configuration.
101
+ *
102
+ * @see https://api.slack.com/bot-users
103
+ * @stability stable
104
+ */
105
+ readonly botUser?: SlackkAppManifestBotUser;
106
+ /**
107
+ * Shortcuts configuration.
108
+ *
109
+ * A maximum of 5 shortcuts can be included.
110
+ *
111
+ * @see https://api.slack.com/interactivity/shortcuts
112
+ * @stability stable
113
+ */
114
+ readonly shortcuts?: SlackAppManifestShortcut[];
115
+ /**
116
+ * Slash commands configuration.
117
+ *
118
+ * A maximum of 5 slash commands can be included.
119
+ *
120
+ * @see https://api.slack.com/interactivity/slash-commands
121
+ * @stability stable
122
+ */
123
+ readonly slashCommands?: SlackAppManifestSlashCommand[];
124
+ /**
125
+ * Workflow steps.
126
+ *
127
+ * A maximum of 10 workflow steps can be included.
128
+ *
129
+ * @see https://api.slack.com/workflows/steps
130
+ * @stability stable
131
+ */
132
+ readonly workflowSteps?: SlackAppManifestWorkflowStep[];
133
+ /**
134
+ * Valid unfurl domains to register.
135
+ *
136
+ * A maximum of 5 unfurl domains can be included.
137
+ *
138
+ * @see https://api.slack.com/reference/messaging/link-unfurling#configuring_domains
139
+ * @stability stable
140
+ */
141
+ readonly unfurlDomains?: string[];
142
+ /**
143
+ * OAuth configuration for the app.
144
+ *
145
+ * @stability stable
146
+ */
147
+ readonly oauthConfig?: SlackAppManifestOauthConfig;
148
+ }
149
+ /**
150
+ * Settings section of the app config pages.
151
+ *
152
+ * @stability stable
153
+ */
154
+ export interface SlackAppManifestSettings {
155
+ /**
156
+ * An array of IP addresses that conform to the Allowed IP Ranges feature.
157
+ *
158
+ * @see https://api.slack.com/authentication/best-practices#ip_allowlisting
159
+ * @stability stable
160
+ */
161
+ readonly allowedIpAddressRanges?: string[];
162
+ /**
163
+ * Events API configuration for the app.
164
+ *
165
+ * @see https://api.slack.com/events-api
166
+ * @stability stable
167
+ */
168
+ readonly eventSubscriptions?: SlackAppManifestEventSubscriptions;
169
+ /**
170
+ * Interactivity configuration for the app.
171
+ *
172
+ * @stability stable
173
+ */
174
+ readonly interactivity?: SlackAppManifestInteractivity;
175
+ /**
176
+ * Whether org-wide deploy is enabled.
177
+ *
178
+ * @default false
179
+ * @see https://api.slack.com/enterprise/apps
180
+ * @stability stable
181
+ */
182
+ readonly orgDeploy?: boolean;
183
+ /**
184
+ * Whether Socket Mode is enabled.
185
+ *
186
+ * @default false
187
+ * @see https://api.slack.com/apis/connections/socket
188
+ * @stability stable
189
+ */
190
+ readonly socketMode?: boolean;
191
+ }
192
+ /**
193
+ * Events API configuration for the app.
194
+ *
195
+ * @see https://api.slack.com/events-api
196
+ * @stability stable
197
+ */
198
+ export interface SlackAppManifestEventSubscriptions {
199
+ /**
200
+ * The full https URL that acts as the Events API request URL.
201
+ *
202
+ * @see https://api.slack.com/events-api#the-events-api__subscribing-to-event-types__events-api-request-urls
203
+ * @stability stable
204
+ */
205
+ readonly requestUrl: string;
206
+ /**
207
+ * Event types you want the app to subscribe to.
208
+ *
209
+ * A maximum of 100 event types can be used
210
+ *
211
+ * @see https://api.slack.com/events
212
+ * @stability stable
213
+ */
214
+ readonly botEvents?: string[];
215
+ /**
216
+ * Event types you want the app to subscribe to on behalf of authorized users.
217
+ *
218
+ * A maximum of 100 event types can be used.
219
+ *
220
+ * @stability stable
221
+ */
222
+ readonly userEvents?: string[];
223
+ }
224
+ /**
225
+ * Interactivity configuration for the app.
226
+ *
227
+ * @see https://api.slack.com/interactivity/handling#setup
228
+ * @stability stable
229
+ */
230
+ export interface SlackAppManifestInteractivity {
231
+ /**
232
+ * Whether or not interactivity features are enabled.
233
+ *
234
+ * @default true
235
+ * @stability stable
236
+ */
237
+ readonly enabled?: boolean;
238
+ /**
239
+ * The full https URL that acts as the interactive Request URL.
240
+ *
241
+ * @stability stable
242
+ */
243
+ readonly requestUrl?: string;
244
+ /**
245
+ * The full https URL that acts as th interactive Options Load URL.
246
+ *
247
+ * @stability stable
248
+ */
249
+ readonly messageMenuOptionsUrl?: string;
250
+ }
251
+ /**
252
+ * App Home configuration.
253
+ *
254
+ * @see https://api.slack.com/surfaces/tabs
255
+ * @stability stable
256
+ */
257
+ export interface SlackAppManifestAppHome {
258
+ /**
259
+ * Wether the Home tab is enabled.
260
+ *
261
+ * @default false
262
+ * @stability stable
263
+ */
264
+ readonly homeTab?: boolean;
265
+ /**
266
+ * Wether the Messages is enabled.
267
+ *
268
+ * @default false
269
+ * @stability stable
270
+ */
271
+ readonly messagesTab?: boolean;
272
+ /**
273
+ * Whether the users can send messages to your app in the Messages tab of your App Home.
274
+ *
275
+ * @default false
276
+ * @stability stable
277
+ */
278
+ readonly messagesTabReadOnly?: boolean;
279
+ }
280
+ /**
281
+ * Bot user configuration.
282
+ *
283
+ * @see https://api.slack.com/bot-users
284
+ * @stability stable
285
+ */
286
+ export interface SlackkAppManifestBotUser {
287
+ /**
288
+ * The display name of the bot user.
289
+ *
290
+ * Maximum length is 80 characters.
291
+ *
292
+ * @stability stable
293
+ */
294
+ readonly displayName: string;
295
+ /**
296
+ * Whether the bot user will always appear to be online.
297
+ *
298
+ * @default false
299
+ * @stability stable
300
+ */
301
+ readonly alwaysOnline?: boolean;
302
+ }
303
+ /**
304
+ * Shortcut configuration.
305
+ *
306
+ * @see https://api.slack.com/interactivity/shortcuts
307
+ * @stability stable
308
+ */
309
+ export interface SlackAppManifestShortcut {
310
+ /**
311
+ * The name of the shortcut.
312
+ *
313
+ * @stability stable
314
+ */
315
+ readonly name: string;
316
+ /**
317
+ * The type of shortcut.
318
+ *
319
+ * @see https://api.slack.com/interactivity/shortcuts
320
+ * @stability stable
321
+ */
322
+ readonly type: SlackAppManifestShortcutType;
323
+ /**
324
+ * The callback ID of the shortcut.
325
+ *
326
+ * Maximum length is 255 characters.
327
+ *
328
+ * @stability stable
329
+ */
330
+ readonly callbackId: string;
331
+ /**
332
+ * A short description of the shortcut.
333
+ *
334
+ * Maximum length is 150 characters
335
+ *
336
+ * @stability stable
337
+ */
338
+ readonly description: string;
339
+ }
340
+ /**
341
+ * Type of shortcuts.
342
+ *
343
+ * @see https://api.slack.com/interactivity/shortcuts
344
+ * @stability stable
345
+ */
346
+ export declare enum SlackAppManifestShortcutType {
347
+ /**
348
+ * Message shortcuts are shown to users in the context menus of messages within Slack.
349
+ *
350
+ * @see https://api.slack.com/interactivity/shortcuts/using#message_shortcuts
351
+ * @stability stable
352
+ */
353
+ MESSAGE = "message",
354
+ /**
355
+ * Global shortcuts are available to users via the shortcuts button in the composer, and when using search in Slack.
356
+ *
357
+ * @see https://api.slack.com/interactivity/shortcuts/using#global_shortcuts
358
+ * @stability stable
359
+ */
360
+ GLOBAL = "global"
361
+ }
362
+ /**
363
+ * Slash command configuration.
364
+ *
365
+ * @see https://api.slack.com/interactivity/slash-commands
366
+ * @stability stable
367
+ */
368
+ export interface SlackAppManifestSlashCommand {
369
+ /**
370
+ * The actual slash command.
371
+ *
372
+ * Maximum length is 32 characters
373
+ *
374
+ * @stability stable
375
+ */
376
+ readonly command: string;
377
+ /**
378
+ * The description of the slash command.
379
+ *
380
+ * Maximum length is 2000 characters.
381
+ *
382
+ * @stability stable
383
+ */
384
+ readonly description: string;
385
+ /**
386
+ * The full https URL that acts as the slash command's request URL.
387
+ *
388
+ * @see https://api.slack.com/interactivity/slash-commands#creating_commands
389
+ * @stability stable
390
+ */
391
+ readonly url?: string;
392
+ /**
393
+ * The short usage hint about the slash command for users.
394
+ *
395
+ * Maximum length is 1000 characters.
396
+ *
397
+ * @stability stable
398
+ */
399
+ readonly usageHint?: string;
400
+ /**
401
+ * Whether channels, users, and links typed with the slash command should be escaped.
402
+ *
403
+ * @default false
404
+ * @stability stable
405
+ */
406
+ readonly shouldEscape?: boolean;
407
+ }
408
+ /**
409
+ * Workflow step.
410
+ *
411
+ * @see https://api.slack.com/workflows/steps
412
+ * @stability stable
413
+ */
414
+ export interface SlackAppManifestWorkflowStep {
415
+ /**
416
+ * The name of the workflow step.
417
+ *
418
+ * Maximum length of 50 characters.
419
+ *
420
+ * @stability stable
421
+ */
422
+ readonly name: string;
423
+ /**
424
+ * The callback ID of the workflow step.
425
+ *
426
+ * Maximum length of 50 characters.
427
+ *
428
+ * @stability stable
429
+ */
430
+ readonly callbackId: string;
431
+ }
432
+ /**
433
+ * OAuth configuration for the app.
434
+ *
435
+ * @stability stable
436
+ */
437
+ export interface SlackAppManifestOauthConfig {
438
+ /**
439
+ * OAuth redirect URLs.
440
+ *
441
+ * A maximum of 1000 redirect URLs can be included.
442
+ *
443
+ * @see https://api.slack.com/authentication/oauth-v2#redirect_urls
444
+ * @stability stable
445
+ */
446
+ readonly redirectUrls?: string[];
447
+ /**
448
+ * Bot scopes to request upon app installation.
449
+ *
450
+ * A maximum of 255 scopes can be included.
451
+ *
452
+ * @see https://api.slack.com/scopes
453
+ * @stability stable
454
+ */
455
+ readonly botScopes?: string[];
456
+ /**
457
+ * User scopes to request upon app installation.
458
+ *
459
+ * A maximum of 255 scopes can be included.
460
+ *
461
+ * @see https://api.slack.com/scopes
462
+ * @stability stable
463
+ */
464
+ readonly userScopes?: string[];
465
+ }
466
+ /**
467
+ * A Slack app manifest.
468
+ *
469
+ * @see https://api.slack.com/reference/manifests
470
+ * @stability stable
471
+ */
472
+ export declare class SlackAppManifest {
473
+ private readonly props;
474
+ /**
475
+ * @stability stable
476
+ */
477
+ constructor(props: SlackAppManifestProps);
478
+ /**
479
+ * @stability stable
480
+ */
481
+ render(construct: IConstruct): string;
482
+ }