cloudstructs 0.3.0 → 0.4.2
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.
- package/.jsii +1444 -126
- package/API.md +343 -2
- package/assets/codecommit-mirror/docker/mirror.sh +0 -0
- package/changelog.md +2 -0
- package/lib/codecommit-mirror/index.js +4 -5
- package/lib/ecs-service-roller/index.js +2 -2
- package/lib/email-receiver/receiver.js +3 -4
- package/lib/saml-identity-provider/index.js +2 -2
- package/lib/slack-app/index.d.ts +2 -95
- package/lib/slack-app/index.js +13 -47
- package/lib/slack-app/manifest.d.ts +482 -0
- package/lib/slack-app/manifest.js +198 -0
- package/lib/slack-app/provider.handler.js +4 -3
- package/lib/slack-app/provider.js +1 -3
- package/lib/slack-app/slack-app.d.ts +127 -0
- package/lib/slack-app/slack-app.js +103 -0
- package/lib/slack-events/index.js +2 -4
- package/lib/slack-textract/index.js +2 -4
- package/lib/state-machine-cr-provider/index.js +4 -4
- package/lib/static-website/index.js +1 -1
- package/lib/url-shortener/index.js +2 -4
- package/node_modules/@types/cacheable-request/node_modules/@types/node/README.md +1 -1
- package/node_modules/@types/cacheable-request/node_modules/@types/node/globals.d.ts +3 -3
- package/node_modules/@types/cacheable-request/node_modules/@types/node/http.d.ts +11 -1
- package/node_modules/@types/cacheable-request/node_modules/@types/node/http2.d.ts +3 -3
- package/node_modules/@types/cacheable-request/node_modules/@types/node/net.d.ts +4 -3
- package/node_modules/@types/cacheable-request/node_modules/@types/node/package.json +2 -2
- package/node_modules/@types/cacheable-request/node_modules/@types/node/path.d.ts +8 -0
- package/node_modules/@types/cacheable-request/node_modules/@types/node/perf_hooks.d.ts +2 -0
- package/node_modules/@types/cacheable-request/node_modules/@types/node/process.d.ts +1 -1
- package/node_modules/@types/cacheable-request/node_modules/@types/node/stream.d.ts +8 -8
- package/node_modules/@types/cacheable-request/node_modules/@types/node/tls.d.ts +2 -1
- package/node_modules/@types/is-stream/node_modules/@types/node/README.md +1 -1
- package/node_modules/@types/is-stream/node_modules/@types/node/globals.d.ts +3 -3
- package/node_modules/@types/is-stream/node_modules/@types/node/http.d.ts +11 -1
- package/node_modules/@types/is-stream/node_modules/@types/node/http2.d.ts +3 -3
- package/node_modules/@types/is-stream/node_modules/@types/node/net.d.ts +4 -3
- package/node_modules/@types/is-stream/node_modules/@types/node/package.json +2 -2
- package/node_modules/@types/is-stream/node_modules/@types/node/path.d.ts +8 -0
- package/node_modules/@types/is-stream/node_modules/@types/node/perf_hooks.d.ts +2 -0
- package/node_modules/@types/is-stream/node_modules/@types/node/process.d.ts +1 -1
- package/node_modules/@types/is-stream/node_modules/@types/node/stream.d.ts +8 -8
- package/node_modules/@types/is-stream/node_modules/@types/node/tls.d.ts +2 -1
- package/node_modules/@types/keyv/node_modules/@types/node/README.md +1 -1
- package/node_modules/@types/keyv/node_modules/@types/node/globals.d.ts +3 -3
- package/node_modules/@types/keyv/node_modules/@types/node/http.d.ts +11 -1
- package/node_modules/@types/keyv/node_modules/@types/node/http2.d.ts +3 -3
- package/node_modules/@types/keyv/node_modules/@types/node/net.d.ts +4 -3
- package/node_modules/@types/keyv/node_modules/@types/node/package.json +2 -2
- package/node_modules/@types/keyv/node_modules/@types/node/path.d.ts +8 -0
- package/node_modules/@types/keyv/node_modules/@types/node/perf_hooks.d.ts +2 -0
- package/node_modules/@types/keyv/node_modules/@types/node/process.d.ts +1 -1
- package/node_modules/@types/keyv/node_modules/@types/node/stream.d.ts +8 -8
- package/node_modules/@types/keyv/node_modules/@types/node/tls.d.ts +2 -1
- package/node_modules/@types/responselike/node_modules/@types/node/README.md +1 -1
- package/node_modules/@types/responselike/node_modules/@types/node/globals.d.ts +3 -3
- package/node_modules/@types/responselike/node_modules/@types/node/http.d.ts +11 -1
- package/node_modules/@types/responselike/node_modules/@types/node/http2.d.ts +3 -3
- package/node_modules/@types/responselike/node_modules/@types/node/net.d.ts +4 -3
- package/node_modules/@types/responselike/node_modules/@types/node/package.json +2 -2
- package/node_modules/@types/responselike/node_modules/@types/node/path.d.ts +8 -0
- package/node_modules/@types/responselike/node_modules/@types/node/perf_hooks.d.ts +2 -0
- package/node_modules/@types/responselike/node_modules/@types/node/process.d.ts +1 -1
- package/node_modules/@types/responselike/node_modules/@types/node/stream.d.ts +8 -8
- package/node_modules/@types/responselike/node_modules/@types/node/tls.d.ts +2 -1
- package/package.json +10 -7
- package/releasetag.txt +1 -0
- package/version.txt +1 -0
package/lib/slack-app/index.d.ts
CHANGED
|
@@ -1,95 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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';
|
package/lib/slack-app/index.js
CHANGED
|
@@ -1,49 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
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
|
|
5
|
-
|
|
6
|
-
|
|
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.0" };
|
|
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
|
+
}
|