@robhan-cdk-lib/aws_grafana 0.0.24 → 0.0.25

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.
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.WorkspaceBase = exports.Status = exports.SamlConfigurationStatuses = exports.PermissionTypes = exports.NotificationDestinations = exports.AuthenticationProviders = exports.AccountAccessType = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
7
+ /**
8
+ * Specifies whether the workspace can access AWS resources in this AWS account only, or whether it
9
+ * can also access AWS resources in other accounts in the same organization. If this is
10
+ * ORGANIZATION, the OrganizationalUnits parameter specifies which organizational units the
11
+ * workspace can access.
12
+ */
13
+ var AccountAccessType;
14
+ (function (AccountAccessType) {
15
+ /**
16
+ * Access is limited to the current AWS account only.
17
+ */
18
+ AccountAccessType["CURRENT_ACCOUNT"] = "CURRENT_ACCOUNT";
19
+ /**
20
+ * Access is extended to the entire AWS organization.
21
+ */
22
+ AccountAccessType["ORGANIZATION"] = "ORGANIZATION";
23
+ })(AccountAccessType || (exports.AccountAccessType = AccountAccessType = {}));
24
+ /**
25
+ * Specifies whether this workspace uses SAML 2.0, AWS IAM Identity Center, or both to authenticate
26
+ * users for using the Grafana console within a workspace.
27
+ *
28
+ * @see https://docs.aws.amazon.com/grafana/latest/APIReference/API_CreateWorkspace.html
29
+ */
30
+ var AuthenticationProviders;
31
+ (function (AuthenticationProviders) {
32
+ /**
33
+ * AWS Single Sign-On authentication provider.
34
+ */
35
+ AuthenticationProviders["AWS_SSO"] = "AWS_SSO";
36
+ /**
37
+ * Security Assertion Markup Language (SAML) authentication provider.
38
+ */
39
+ AuthenticationProviders["SAML"] = "SAML";
40
+ })(AuthenticationProviders || (exports.AuthenticationProviders = AuthenticationProviders = {}));
41
+ /**
42
+ * The AWS notification channels that Amazon Managed Grafana can automatically create IAM roles and
43
+ * permissions for, to allow Amazon Managed Grafana to use these channels.
44
+ */
45
+ var NotificationDestinations;
46
+ (function (NotificationDestinations) {
47
+ /**
48
+ * Amazon Simple Notification Service (SNS) as notification destination.
49
+ */
50
+ NotificationDestinations["SNS"] = "SNS";
51
+ })(NotificationDestinations || (exports.NotificationDestinations = NotificationDestinations = {}));
52
+ /**
53
+ * If this is SERVICE_MANAGED, and the workplace was created through the Amazon Managed Grafana
54
+ * console, then Amazon Managed Grafana automatically creates the IAM roles and provisions the
55
+ * permissions that the workspace needs to use AWS data sources and notification channels.
56
+ *
57
+ * If this is CUSTOMER_MANAGED, you must manage those roles and permissions yourself.
58
+
59
+ * If you are working with a workspace in a member account of an organization and that account is
60
+ * not a delegated administrator account, and you want the workspace to access data sources in
61
+ * other AWS accounts in the organization, this parameter must be set to CUSTOMER_MANAGED.
62
+ */
63
+ var PermissionTypes;
64
+ (function (PermissionTypes) {
65
+ /**
66
+ * Customer-managed permissions where you manage user access to Grafana.
67
+ */
68
+ PermissionTypes["CUSTOMER_MANAGED"] = "CUSTOMER_MANAGED";
69
+ /**
70
+ * Service-managed permissions where AWS manages user access to Grafana.
71
+ */
72
+ PermissionTypes["SERVICE_MANAGED"] = "SERVICE_MANAGED";
73
+ })(PermissionTypes || (exports.PermissionTypes = PermissionTypes = {}));
74
+ /**
75
+ * Status of SAML configuration for a Grafana workspace.
76
+ */
77
+ var SamlConfigurationStatuses;
78
+ (function (SamlConfigurationStatuses) {
79
+ /**
80
+ * SAML is configured for the workspace.
81
+ */
82
+ SamlConfigurationStatuses["CONFIGURED"] = "CONFIGURED";
83
+ /**
84
+ * SAML is not configured for the workspace.
85
+ */
86
+ SamlConfigurationStatuses["NOT_CONFIGURED"] = "NOT_CONFIGURED";
87
+ })(SamlConfigurationStatuses || (exports.SamlConfigurationStatuses = SamlConfigurationStatuses = {}));
88
+ /**
89
+ * Status of a Grafana workspace.
90
+ */
91
+ var Status;
92
+ (function (Status) {
93
+ /**
94
+ * Workspace is active and ready to use.
95
+ */
96
+ Status["ACTIVE"] = "ACTIVE";
97
+ /**
98
+ * Workspace is being created.
99
+ */
100
+ Status["CREATING"] = "CREATING";
101
+ /**
102
+ * Workspace is being deleted.
103
+ */
104
+ Status["DELETING"] = "DELETING";
105
+ /**
106
+ * Workspace operation has failed.
107
+ */
108
+ Status["FAILED"] = "FAILED";
109
+ /**
110
+ * Workspace is being updated.
111
+ */
112
+ Status["UPDATING"] = "UPDATING";
113
+ /**
114
+ * Workspace is being upgraded.
115
+ */
116
+ Status["UPGRADING"] = "UPGRADING";
117
+ /**
118
+ * Workspace deletion has failed.
119
+ */
120
+ Status["DELETION_FAILED"] = "DELETION_FAILED";
121
+ /**
122
+ * Workspace creation has failed.
123
+ */
124
+ Status["CREATION_FAILED"] = "CREATION_FAILED";
125
+ /**
126
+ * Workspace update has failed.
127
+ */
128
+ Status["UPDATE_FAILED"] = "UPDATE_FAILED";
129
+ /**
130
+ * Workspace upgrade has failed.
131
+ */
132
+ Status["UPGRADE_FAILED"] = "UPGRADE_FAILED";
133
+ /**
134
+ * License removal has failed.
135
+ */
136
+ Status["LICENSE_REMOVAL_FAILED"] = "LICENSE_REMOVAL_FAILED";
137
+ })(Status || (exports.Status = Status = {}));
138
+ class WorkspaceBase extends aws_cdk_lib_1.Resource {
139
+ getWorkspaceArn(workspaceId) {
140
+ const stack = this.stack;
141
+ return `arn:${stack.partition}:grafana:${stack.region}:${stack.account}:/workspaces/${workspaceId}`;
142
+ }
143
+ getWorkspaceId(workspaceArn) {
144
+ return workspaceArn.substring(workspaceArn.lastIndexOf('/') + 1);
145
+ }
146
+ }
147
+ exports.WorkspaceBase = WorkspaceBase;
148
+ _a = JSII_RTTI_SYMBOL_1;
149
+ WorkspaceBase[_a] = { fqn: "@robhan-cdk-lib/aws_grafana.WorkspaceBase", version: "0.0.25" };
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvd29ya3NwYWNlLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBa0Q7QUFJbEQ7Ozs7O0dBS0c7QUFDSCxJQUFZLGlCQVVYO0FBVkQsV0FBWSxpQkFBaUI7SUFDM0I7O09BRUc7SUFDSCx3REFBbUMsQ0FBQTtJQUVuQzs7T0FFRztJQUNILGtEQUE2QixDQUFBO0FBQy9CLENBQUMsRUFWVyxpQkFBaUIsaUNBQWpCLGlCQUFpQixRQVU1QjtBQUVEOzs7OztHQUtHO0FBQ0gsSUFBWSx1QkFVWDtBQVZELFdBQVksdUJBQXVCO0lBQ2pDOztPQUVHO0lBQ0gsOENBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCx3Q0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQVZXLHVCQUF1Qix1Q0FBdkIsdUJBQXVCLFFBVWxDO0FBMkJEOzs7R0FHRztBQUNILElBQVksd0JBS1g7QUFMRCxXQUFZLHdCQUF3QjtJQUNsQzs7T0FFRztJQUNILHVDQUFXLENBQUE7QUFDYixDQUFDLEVBTFcsd0JBQXdCLHdDQUF4Qix3QkFBd0IsUUFLbkM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsSUFBWSxlQVVYO0FBVkQsV0FBWSxlQUFlO0lBQ3pCOztPQUVHO0lBQ0gsd0RBQXFDLENBQUE7SUFFckM7O09BRUc7SUFDSCxzREFBbUMsQ0FBQTtBQUNyQyxDQUFDLEVBVlcsZUFBZSwrQkFBZixlQUFlLFFBVTFCO0FBNEpEOztHQUVHO0FBQ0gsSUFBWSx5QkFVWDtBQVZELFdBQVkseUJBQXlCO0lBQ25DOztPQUVHO0lBQ0gsc0RBQXlCLENBQUE7SUFFekI7O09BRUc7SUFDSCw4REFBaUMsQ0FBQTtBQUNuQyxDQUFDLEVBVlcseUJBQXlCLHlDQUF6Qix5QkFBeUIsUUFVcEM7QUFFRDs7R0FFRztBQUNILElBQVksTUF1RFg7QUF2REQsV0FBWSxNQUFNO0lBQ2hCOztPQUVHO0lBQ0gsMkJBQWlCLENBQUE7SUFFakI7O09BRUc7SUFDSCwrQkFBcUIsQ0FBQTtJQUVyQjs7T0FFRztJQUNILCtCQUFxQixDQUFBO0lBRXJCOztPQUVHO0lBQ0gsMkJBQWlCLENBQUE7SUFFakI7O09BRUc7SUFDSCwrQkFBcUIsQ0FBQTtJQUVyQjs7T0FFRztJQUNILGlDQUF1QixDQUFBO0lBRXZCOztPQUVHO0lBQ0gsNkNBQW1DLENBQUE7SUFFbkM7O09BRUc7SUFDSCw2Q0FBbUMsQ0FBQTtJQUVuQzs7T0FFRztJQUNILHlDQUErQixDQUFBO0lBRS9COztPQUVHO0lBQ0gsMkNBQWlDLENBQUE7SUFFakM7O09BRUc7SUFDSCwyREFBaUQsQ0FBQTtBQUNuRCxDQUFDLEVBdkRXLE1BQU0sc0JBQU4sTUFBTSxRQXVEakI7QUE4SUQsTUFBc0IsYUFBYyxTQUFRLHNCQUFRO0lBcUd4QyxlQUFlLENBQUMsV0FBbUI7UUFDM0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN6QixPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsWUFBWSxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLGdCQUFnQixXQUFXLEVBQUUsQ0FBQztJQUN0RyxDQUFDO0lBRVMsY0FBYyxDQUFDLFlBQW9CO1FBQzNDLE9BQU8sWUFBWSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7O0FBNUdILHNDQTZHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElSZXNvdXJjZSwgUmVzb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBJUHJlZml4TGlzdCwgSVNlY3VyaXR5R3JvdXAsIElTdWJuZXQsIElWcGNFbmRwb2ludCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0IHsgSVJvbGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcblxuLyoqXG4gKiBTcGVjaWZpZXMgd2hldGhlciB0aGUgd29ya3NwYWNlIGNhbiBhY2Nlc3MgQVdTIHJlc291cmNlcyBpbiB0aGlzIEFXUyBhY2NvdW50IG9ubHksIG9yIHdoZXRoZXIgaXRcbiAqIGNhbiBhbHNvIGFjY2VzcyBBV1MgcmVzb3VyY2VzIGluIG90aGVyIGFjY291bnRzIGluIHRoZSBzYW1lIG9yZ2FuaXphdGlvbi4gSWYgdGhpcyBpc1xuICogT1JHQU5JWkFUSU9OLCB0aGUgT3JnYW5pemF0aW9uYWxVbml0cyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHdoaWNoIG9yZ2FuaXphdGlvbmFsIHVuaXRzIHRoZVxuICogd29ya3NwYWNlIGNhbiBhY2Nlc3MuXG4gKi9cbmV4cG9ydCBlbnVtIEFjY291bnRBY2Nlc3NUeXBlIHtcbiAgLyoqXG4gICAqIEFjY2VzcyBpcyBsaW1pdGVkIHRvIHRoZSBjdXJyZW50IEFXUyBhY2NvdW50IG9ubHkuXG4gICAqL1xuICBDVVJSRU5UX0FDQ09VTlQgPSAnQ1VSUkVOVF9BQ0NPVU5UJyxcblxuICAvKipcbiAgICogQWNjZXNzIGlzIGV4dGVuZGVkIHRvIHRoZSBlbnRpcmUgQVdTIG9yZ2FuaXphdGlvbi5cbiAgICovXG4gIE9SR0FOSVpBVElPTiA9ICdPUkdBTklaQVRJT04nLFxufVxuXG4vKipcbiAqIFNwZWNpZmllcyB3aGV0aGVyIHRoaXMgd29ya3NwYWNlIHVzZXMgU0FNTCAyLjAsIEFXUyBJQU0gSWRlbnRpdHkgQ2VudGVyLCBvciBib3RoIHRvIGF1dGhlbnRpY2F0ZVxuICogdXNlcnMgZm9yIHVzaW5nIHRoZSBHcmFmYW5hIGNvbnNvbGUgd2l0aGluIGEgd29ya3NwYWNlLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dyYWZhbmEvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlV29ya3NwYWNlLmh0bWxcbiAqL1xuZXhwb3J0IGVudW0gQXV0aGVudGljYXRpb25Qcm92aWRlcnMge1xuICAvKipcbiAgICogQVdTIFNpbmdsZSBTaWduLU9uIGF1dGhlbnRpY2F0aW9uIHByb3ZpZGVyLlxuICAgKi9cbiAgQVdTX1NTTyA9ICdBV1NfU1NPJyxcblxuICAvKipcbiAgICogU2VjdXJpdHkgQXNzZXJ0aW9uIE1hcmt1cCBMYW5ndWFnZSAoU0FNTCkgYXV0aGVudGljYXRpb24gcHJvdmlkZXIuXG4gICAqL1xuICBTQU1MID0gJ1NBTUwnLFxufVxuXG4vKipcbiAqIFRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciBuZXR3b3JrIGFjY2VzcyB0byB5b3VyIHdvcmtzcGFjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrQWNjZXNzQ29udHJvbCB7XG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBwcmVmaXggbGlzdCBJRHMuIEEgcHJlZml4IGxpc3QgaXMgYSBsaXN0IG9mIENJRFIgcmFuZ2VzIG9mIElQIGFkZHJlc3Nlcy4gVGhlIElQXG4gICAqIGFkZHJlc3NlcyBzcGVjaWZpZWQgYXJlIGFsbG93ZWQgdG8gYWNjZXNzIHlvdXIgd29ya3NwYWNlLiBJZiB0aGUgbGlzdCBpcyBub3QgaW5jbHVkZWQgaW4gdGhlXG4gICAqIGNvbmZpZ3VyYXRpb24gKHBhc3NlZCBhbiBlbXB0eSBhcnJheSkgdGhlbiBubyBJUCBhZGRyZXNzZXMgYXJlIGFsbG93ZWQgdG8gYWNjZXNzIHRoZVxuICAgKiB3b3Jrc3BhY2UuXG4gICAqXG4gICAqIE1heGltdW0gb2YgNSBwcmVmaXggbGlzdHMgYWxsb3dlZC5cbiAgICovXG4gIHJlYWRvbmx5IHByZWZpeExpc3RzPzogSVByZWZpeExpc3RbXTtcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgQW1hem9uIFZQQyBlbmRwb2ludCBJRHMgZm9yIHRoZSB3b3Jrc3BhY2UuIFlvdSBjYW4gY3JlYXRlIFZQQyBlbmRwb2ludHMgdG8geW91clxuICAgKiBBbWF6b24gTWFuYWdlZCBHcmFmYW5hIHdvcmtzcGFjZSBmb3IgYWNjZXNzIGZyb20gd2l0aGluIGEgVlBDLiBJZiBhIE5ldHdvcmtBY2Nlc3NDb25maWd1cmF0aW9uXG4gICAqIGlzIHNwZWNpZmllZCB0aGVuIG9ubHkgVlBDIGVuZHBvaW50cyBzcGVjaWZpZWQgaGVyZSBhcmUgYWxsb3dlZCB0byBhY2Nlc3MgdGhlIHdvcmtzcGFjZS4gSWZcbiAgICogeW91IHBhc3MgaW4gYW4gZW1wdHkgYXJyYXkgb2Ygc3RyaW5ncywgdGhlbiBubyBWUENzIGFyZSBhbGxvd2VkIHRvIGFjY2VzcyB0aGUgd29ya3NwYWNlLlxuICAgKlxuICAgKiBNYXhpbXVtIG9mIDUgVlBDIGVuZHBvaW50cyBhbGxvd2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjRW5kcG9pbnRzPzogSVZwY0VuZHBvaW50W107XG59XG5cbi8qKlxuICogVGhlIEFXUyBub3RpZmljYXRpb24gY2hhbm5lbHMgdGhhdCBBbWF6b24gTWFuYWdlZCBHcmFmYW5hIGNhbiBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBJQU0gcm9sZXMgYW5kXG4gKiBwZXJtaXNzaW9ucyBmb3IsIHRvIGFsbG93IEFtYXpvbiBNYW5hZ2VkIEdyYWZhbmEgdG8gdXNlIHRoZXNlIGNoYW5uZWxzLlxuICovXG5leHBvcnQgZW51bSBOb3RpZmljYXRpb25EZXN0aW5hdGlvbnMge1xuICAvKipcbiAgICogQW1hem9uIFNpbXBsZSBOb3RpZmljYXRpb24gU2VydmljZSAoU05TKSBhcyBub3RpZmljYXRpb24gZGVzdGluYXRpb24uXG4gICAqL1xuICBTTlMgPSAnU05TJyxcbn1cblxuLyoqXG4gKiBJZiB0aGlzIGlzIFNFUlZJQ0VfTUFOQUdFRCwgYW5kIHRoZSB3b3JrcGxhY2Ugd2FzIGNyZWF0ZWQgdGhyb3VnaCB0aGUgQW1hem9uIE1hbmFnZWQgR3JhZmFuYVxuICogY29uc29sZSwgdGhlbiBBbWF6b24gTWFuYWdlZCBHcmFmYW5hIGF1dG9tYXRpY2FsbHkgY3JlYXRlcyB0aGUgSUFNIHJvbGVzIGFuZCBwcm92aXNpb25zIHRoZVxuICogcGVybWlzc2lvbnMgdGhhdCB0aGUgd29ya3NwYWNlIG5lZWRzIHRvIHVzZSBBV1MgZGF0YSBzb3VyY2VzIGFuZCBub3RpZmljYXRpb24gY2hhbm5lbHMuXG4gKlxuICogSWYgdGhpcyBpcyBDVVNUT01FUl9NQU5BR0VELCB5b3UgbXVzdCBtYW5hZ2UgdGhvc2Ugcm9sZXMgYW5kIHBlcm1pc3Npb25zIHlvdXJzZWxmLlxuXG4gKiBJZiB5b3UgYXJlIHdvcmtpbmcgd2l0aCBhIHdvcmtzcGFjZSBpbiBhIG1lbWJlciBhY2NvdW50IG9mIGFuIG9yZ2FuaXphdGlvbiBhbmQgdGhhdCBhY2NvdW50IGlzXG4gKiBub3QgYSBkZWxlZ2F0ZWQgYWRtaW5pc3RyYXRvciBhY2NvdW50LCBhbmQgeW91IHdhbnQgdGhlIHdvcmtzcGFjZSB0byBhY2Nlc3MgZGF0YSBzb3VyY2VzIGluXG4gKiBvdGhlciBBV1MgYWNjb3VudHMgaW4gdGhlIG9yZ2FuaXphdGlvbiwgdGhpcyBwYXJhbWV0ZXIgbXVzdCBiZSBzZXQgdG8gQ1VTVE9NRVJfTUFOQUdFRC5cbiAqL1xuZXhwb3J0IGVudW0gUGVybWlzc2lvblR5cGVzIHtcbiAgLyoqXG4gICAqIEN1c3RvbWVyLW1hbmFnZWQgcGVybWlzc2lvbnMgd2hlcmUgeW91IG1hbmFnZSB1c2VyIGFjY2VzcyB0byBHcmFmYW5hLlxuICAgKi9cbiAgQ1VTVE9NRVJfTUFOQUdFRCA9ICdDVVNUT01FUl9NQU5BR0VEJyxcblxuICAvKipcbiAgICogU2VydmljZS1tYW5hZ2VkIHBlcm1pc3Npb25zIHdoZXJlIEFXUyBtYW5hZ2VzIHVzZXIgYWNjZXNzIHRvIEdyYWZhbmEuXG4gICAqL1xuICBTRVJWSUNFX01BTkFHRUQgPSAnU0VSVklDRV9NQU5BR0VEJyxcbn1cblxuLyoqXG4gKiBBIHN0cnVjdHVyZSB0aGF0IGRlZmluZXMgd2hpY2ggYXR0cmlidXRlcyBpbiB0aGUgSWRQIGFzc2VydGlvbiBhcmUgdG8gYmUgdXNlZCB0byBkZWZpbmVcbiAqIGluZm9ybWF0aW9uIGFib3V0IHRoZSB1c2VycyBhdXRoZW50aWNhdGVkIGJ5IHRoZSBJZFAgdG8gdXNlIHRoZSB3b3Jrc3BhY2UuXG4gKlxuICogRWFjaCBhdHRyaWJ1dGUgbXVzdCBiZSBhIHN0cmluZyB3aXRoIGxlbmd0aCBiZXR3ZWVuIDEgYW5kIDI1NiBjaGFyYWN0ZXJzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNhbWxBc3NlcnRpb25BdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUgd2l0aGluIHRoZSBTQU1MIGFzc2VydGlvbiB0byB1c2UgYXMgdGhlIGVtYWlsIG5hbWVzIGZvciBTQU1MIHVzZXJzLlxuICAgKlxuICAgKiBNdXN0IGJlIGJldHdlZW4gMSBhbmQgMjU2IGNoYXJhY3RlcnMgbG9uZy5cbiAgICovXG4gIHJlYWRvbmx5IGVtYWlsPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZSB3aXRoaW4gdGhlIFNBTUwgYXNzZXJ0aW9uIHRvIHVzZSBhcyB0aGUgdXNlciBmdWxsIFwiZnJpZW5kbHlcIiBuYW1lc1xuICAgKiBmb3IgdXNlciBncm91cHMuXG4gICAqXG4gICAqIE11c3QgYmUgYmV0d2VlbiAxIGFuZCAyNTYgY2hhcmFjdGVycyBsb25nLlxuICAgKi9cbiAgcmVhZG9ubHkgZ3JvdXBzPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZSB3aXRoaW4gdGhlIFNBTUwgYXNzZXJ0aW9uIHRvIHVzZSBhcyB0aGUgbG9naW4gbmFtZXMgZm9yIFNBTUwgdXNlcnMuXG4gICAqXG4gICAqIE11c3QgYmUgYmV0d2VlbiAxIGFuZCAyNTYgY2hhcmFjdGVycyBsb25nLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9naW4/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlIHdpdGhpbiB0aGUgU0FNTCBhc3NlcnRpb24gdG8gdXNlIGFzIHRoZSB1c2VyIGZ1bGwgXCJmcmllbmRseVwiIG5hbWVzXG4gICAqIGZvciBTQU1MIHVzZXJzLlxuICAgKlxuICAgKiBNdXN0IGJlIGJldHdlZW4gMSBhbmQgMjU2IGNoYXJhY3RlcnMgbG9uZy5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlIHdpdGhpbiB0aGUgU0FNTCBhc3NlcnRpb24gdG8gdXNlIGFzIHRoZSB1c2VyIGZ1bGwgXCJmcmllbmRseVwiIG5hbWVzXG4gICAqIGZvciB0aGUgdXNlcnMnIG9yZ2FuaXphdGlvbnMuXG4gICAqXG4gICAqIE11c3QgYmUgYmV0d2VlbiAxIGFuZCAyNTYgY2hhcmFjdGVycyBsb25nLlxuICAgKi9cbiAgcmVhZG9ubHkgb3JnPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZSB3aXRoaW4gdGhlIFNBTUwgYXNzZXJ0aW9uIHRvIHVzZSBhcyB0aGUgdXNlciByb2xlcy5cbiAgICpcbiAgICogTXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDI1NiBjaGFyYWN0ZXJzIGxvbmcuXG4gICAqL1xuICByZWFkb25seSByb2xlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgc3RydWN0dXJlIGNvbnRhaW5pbmcgdGhlIGlkZW50aXR5IHByb3ZpZGVyIChJZFApIG1ldGFkYXRhIHVzZWQgdG8gaW50ZWdyYXRlIHRoZSBpZGVudGl0eVxuICogcHJvdmlkZXIgd2l0aCB0aGlzIHdvcmtzcGFjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYW1sSWRwTWV0YWRhdGEge1xuICAvKipcbiAgICogVGhlIFVSTCBvZiB0aGUgbG9jYXRpb24gY29udGFpbmluZyB0aGUgSWRQIG1ldGFkYXRhLlxuICAgKlxuICAgKiBNdXN0IGJlIGEgc3RyaW5nIHdpdGggbGVuZ3RoIGJldHdlZW4gMSBhbmQgMjA0OCBjaGFyYWN0ZXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgdXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZnVsbCBJZFAgbWV0YWRhdGEsIGluIFhNTCBmb3JtYXQuXG4gICAqL1xuICByZWFkb25seSB4bWw/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBzdHJ1Y3R1cmUgY29udGFpbmluZyBhcnJheXMgdGhhdCBtYXAgZ3JvdXAgbmFtZXMgaW4gdGhlIFNBTUwgYXNzZXJ0aW9uIHRvIHRoZSBHcmFmYW5hIEFkbWluXG4gKiBhbmQgRWRpdG9yIHJvbGVzIGluIHRoZSB3b3Jrc3BhY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2FtbFJvbGVWYWx1ZXMge1xuICAvKipcbiAgICogQSBsaXN0IG9mIGdyb3VwcyBmcm9tIHRoZSBTQU1MIGFzc2VydGlvbiBhdHRyaWJ1dGUgdG8gZ3JhbnQgdGhlIEdyYWZhbmEgQWRtaW4gcm9sZSB0by5cbiAgICpcbiAgICogTWF4aW11bSBvZiAyNTYgZWxlbWVudHMuXG4gICAqL1xuICByZWFkb25seSBhZG1pbj86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgZ3JvdXBzIGZyb20gdGhlIFNBTUwgYXNzZXJ0aW9uIGF0dHJpYnV0ZSB0byBncmFudCB0aGUgR3JhZmFuYSBFZGl0b3Igcm9sZSB0by5cbiAgICpcbiAgICogTWF4aW11bSBvZiAyNTYgZWxlbWVudHMuXG4gICAqL1xuICByZWFkb25seSBlZGl0b3I/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBJZiB0aGUgd29ya3NwYWNlIHVzZXMgU0FNTCwgdXNlIHRoaXMgc3RydWN0dXJlIHRvIG1hcCBTQU1MIGFzc2VydGlvbiBhdHRyaWJ1dGVzIHRvIHdvcmtzcGFjZVxuICogdXNlciBpbmZvcm1hdGlvbiBhbmQgZGVmaW5lIHdoaWNoIGdyb3VwcyBpbiB0aGUgYXNzZXJ0aW9uIGF0dHJpYnV0ZSBhcmUgdG8gaGF2ZSB0aGUgQWRtaW4gYW5kXG4gKiBFZGl0b3Igcm9sZXMgaW4gdGhlIHdvcmtzcGFjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYW1sQ29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBMaXN0cyB3aGljaCBvcmdhbml6YXRpb25zIGRlZmluZWQgaW4gdGhlIFNBTUwgYXNzZXJ0aW9uIGFyZSBhbGxvd2VkIHRvIHVzZSB0aGUgQW1hem9uIE1hbmFnZWRcbiAgICogR3JhZmFuYSB3b3Jrc3BhY2UuIElmIHRoaXMgaXMgZW1wdHksIGFsbCBvcmdhbml6YXRpb25zIGluIHRoZSBhc3NlcnRpb24gYXR0cmlidXRlIGhhdmUgYWNjZXNzLlxuICAgKlxuICAgKiBNdXN0IGhhdmUgYmV0d2VlbiAxIGFuZCAyNTYgZWxlbWVudHMuXG4gICAqL1xuICByZWFkb25seSBhbGxvd2VkT3JnYW5pemF0aW9ucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBIHN0cnVjdHVyZSB0aGF0IGRlZmluZXMgd2hpY2ggYXR0cmlidXRlcyBpbiB0aGUgU0FNTCBhc3NlcnRpb24gYXJlIHRvIGJlIHVzZWQgdG8gZGVmaW5lXG4gICAqIGluZm9ybWF0aW9uIGFib3V0IHRoZSB1c2VycyBhdXRoZW50aWNhdGVkIGJ5IHRoYXQgSWRQIHRvIHVzZSB0aGUgd29ya3NwYWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXJ0aW9uQXRycmlidXRlcz86IFNhbWxBc3NlcnRpb25BdHRyaWJ1dGVzO1xuXG4gIC8qKlxuICAgKiBBIHN0cnVjdHVyZSBjb250YWluaW5nIHRoZSBpZGVudGl0eSBwcm92aWRlciAoSWRQKSBtZXRhZGF0YSB1c2VkIHRvIGludGVncmF0ZSB0aGUgaWRlbnRpdHlcbiAgICogcHJvdmlkZXIgd2l0aCB0aGlzIHdvcmtzcGFjZS5cbiAgICpcbiAgICogUmVxdWlyZWQgZmllbGQgZm9yIFNBTUwgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGlkcE1ldGFkYXRhOiBTYW1sSWRwTWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIEhvdyBsb25nIGEgc2lnbi1vbiBzZXNzaW9uIGJ5IGEgU0FNTCB1c2VyIGlzIHZhbGlkLCBiZWZvcmUgdGhlIHVzZXIgaGFzIHRvIHNpZ24gb24gYWdhaW4uXG4gICAqXG4gICAqIE11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIuXG4gICAqL1xuICByZWFkb25seSBsb2dpblZhbGlkaXR5RHVyYXRpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEEgc3RydWN0dXJlIGNvbnRhaW5pbmcgYXJyYXlzIHRoYXQgbWFwIGdyb3VwIG5hbWVzIGluIHRoZSBTQU1MIGFzc2VydGlvbiB0byB0aGUgR3JhZmFuYSBBZG1pblxuICAgKiBhbmQgRWRpdG9yIHJvbGVzIGluIHRoZSB3b3Jrc3BhY2UuXG4gICAqL1xuICByZWFkb25seSByb2xlVmFsdWVzPzogU2FtbFJvbGVWYWx1ZXM7XG59XG5cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIGFuIEFtYXpvbiBWUEMgdGhhdCBjb250YWlucyBkYXRhIHNvdXJjZXMgZm9yIHlvdXIgR3JhZmFuYVxuICogd29ya3NwYWNlIHRvIGNvbm5lY3QgdG8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjQ29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBBbWF6b24gRUMyIHNlY3VyaXR5IGdyb3VwcyBhdHRhY2hlZCB0byB0aGUgQW1hem9uIFZQQyBmb3IgeW91ciBHcmFmYW5hXG4gICAqIHdvcmtzcGFjZSB0byBjb25uZWN0LiBEdXBsaWNhdGVzIG5vdCBhbGxvd2VkLlxuICAgKlxuICAgKiBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW1zLiBNYXhpbXVtIG51bWJlciBvZiA1IGl0ZW1zLlxuICAgKlxuICAgKiBSZXF1aXJlZCBmb3IgVlBDIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eUdyb3VwczogSVNlY3VyaXR5R3JvdXBbXTtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgQW1hem9uIEVDMiBzdWJuZXRzIGNyZWF0ZWQgaW4gdGhlIEFtYXpvbiBWUEMgZm9yIHlvdXIgR3JhZmFuYSB3b3Jrc3BhY2UgdG9cbiAgICogY29ubmVjdC4gRHVwbGljYXRlcyBub3QgYWxsb3dlZC5cbiAgICpcbiAgICogQXJyYXkgTWVtYmVyczogTWluaW11bSBudW1iZXIgb2YgMiBpdGVtcy4gTWF4aW11bSBudW1iZXIgb2YgNiBpdGVtcy5cbiAgICpcbiAgICogUmVxdWlyZWQgZm9yIFZQQyBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0czogSVN1Ym5ldFtdO1xufVxuXG4vKipcbiAqIFN0YXR1cyBvZiBTQU1MIGNvbmZpZ3VyYXRpb24gZm9yIGEgR3JhZmFuYSB3b3Jrc3BhY2UuXG4gKi9cbmV4cG9ydCBlbnVtIFNhbWxDb25maWd1cmF0aW9uU3RhdHVzZXMge1xuICAvKipcbiAgICogU0FNTCBpcyBjb25maWd1cmVkIGZvciB0aGUgd29ya3NwYWNlLlxuICAgKi9cbiAgQ09ORklHVVJFRCA9ICdDT05GSUdVUkVEJyxcblxuICAvKipcbiAgICogU0FNTCBpcyBub3QgY29uZmlndXJlZCBmb3IgdGhlIHdvcmtzcGFjZS5cbiAgICovXG4gIE5PVF9DT05GSUdVUkVEID0gJ05PVF9DT05GSUdVUkVEJyxcbn1cblxuLyoqXG4gKiBTdGF0dXMgb2YgYSBHcmFmYW5hIHdvcmtzcGFjZS5cbiAqL1xuZXhwb3J0IGVudW0gU3RhdHVzIHtcbiAgLyoqXG4gICAqIFdvcmtzcGFjZSBpcyBhY3RpdmUgYW5kIHJlYWR5IHRvIHVzZS5cbiAgICovXG4gIEFDVElWRSA9ICdBQ1RJVkUnLFxuXG4gIC8qKlxuICAgKiBXb3Jrc3BhY2UgaXMgYmVpbmcgY3JlYXRlZC5cbiAgICovXG4gIENSRUFUSU5HID0gJ0NSRUFUSU5HJyxcblxuICAvKipcbiAgICogV29ya3NwYWNlIGlzIGJlaW5nIGRlbGV0ZWQuXG4gICAqL1xuICBERUxFVElORyA9ICdERUxFVElORycsXG5cbiAgLyoqXG4gICAqIFdvcmtzcGFjZSBvcGVyYXRpb24gaGFzIGZhaWxlZC5cbiAgICovXG4gIEZBSUxFRCA9ICdGQUlMRUQnLFxuXG4gIC8qKlxuICAgKiBXb3Jrc3BhY2UgaXMgYmVpbmcgdXBkYXRlZC5cbiAgICovXG4gIFVQREFUSU5HID0gJ1VQREFUSU5HJyxcblxuICAvKipcbiAgICogV29ya3NwYWNlIGlzIGJlaW5nIHVwZ3JhZGVkLlxuICAgKi9cbiAgVVBHUkFESU5HID0gJ1VQR1JBRElORycsXG5cbiAgLyoqXG4gICAqIFdvcmtzcGFjZSBkZWxldGlvbiBoYXMgZmFpbGVkLlxuICAgKi9cbiAgREVMRVRJT05fRkFJTEVEID0gJ0RFTEVUSU9OX0ZBSUxFRCcsXG5cbiAgLyoqXG4gICAqIFdvcmtzcGFjZSBjcmVhdGlvbiBoYXMgZmFpbGVkLlxuICAgKi9cbiAgQ1JFQVRJT05fRkFJTEVEID0gJ0NSRUFUSU9OX0ZBSUxFRCcsXG5cbiAgLyoqXG4gICAqIFdvcmtzcGFjZSB1cGRhdGUgaGFzIGZhaWxlZC5cbiAgICovXG4gIFVQREFURV9GQUlMRUQgPSAnVVBEQVRFX0ZBSUxFRCcsXG5cbiAgLyoqXG4gICAqIFdvcmtzcGFjZSB1cGdyYWRlIGhhcyBmYWlsZWQuXG4gICAqL1xuICBVUEdSQURFX0ZBSUxFRCA9ICdVUEdSQURFX0ZBSUxFRCcsXG5cbiAgLyoqXG4gICAqIExpY2Vuc2UgcmVtb3ZhbCBoYXMgZmFpbGVkLlxuICAgKi9cbiAgTElDRU5TRV9SRU1PVkFMX0ZBSUxFRCA9ICdMSUNFTlNFX1JFTU9WQUxfRkFJTEVEJyxcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIEFtYXpvbiBNYW5hZ2VkIFNlcnZpY2UgZm9yIEdyYWZhbmEgd29ya3NwYWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVdvcmtzcGFjZSBleHRlbmRzIElSZXNvdXJjZSB7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSB3b3Jrc3BhY2UgY2FuIGFjY2VzcyBBV1MgcmVzb3VyY2VzIGluIHRoaXMgQVdTIGFjY291bnQgb25seSwgb3Igd2hldGhlclxuICAgKiBpdCBjYW4gYWxzbyBhY2Nlc3MgQVdTIHJlc291cmNlcyBpbiBvdGhlciBhY2NvdW50cyBpbiB0aGUgc2FtZSBvcmdhbml6YXRpb24uIElmIHRoaXMgaXNcbiAgICogT1JHQU5JWkFUSU9OLCB0aGUgT3JnYW5pemF0aW9uYWxVbml0cyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHdoaWNoIG9yZ2FuaXphdGlvbmFsIHVuaXRzIHRoZVxuICAgKiB3b3Jrc3BhY2UgY2FuIGFjY2Vzcy5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudEFjY2Vzc1R5cGU6IEFjY291bnRBY2Nlc3NUeXBlO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgd2hldGhlciB0aGlzIHdvcmtzcGFjZSB1c2VzIFNBTUwgMi4wLCBBV1MgSUFNIElkZW50aXR5IENlbnRlciwgb3IgYm90aCB0b1xuICAgKiBhdXRoZW50aWNhdGUgdXNlcnMgZm9yIHVzaW5nIHRoZSBHcmFmYW5hIGNvbnNvbGUgd2l0aGluIGEgd29ya3NwYWNlLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBhdXRoZW50aWNhdGlvblByb3ZpZGVyczogQXV0aGVudGljYXRpb25Qcm92aWRlcnNbXTtcblxuICAvKipcbiAgICogQSB1bmlxdWUsIGNhc2Utc2Vuc2l0aXZlLCB1c2VyLXByb3ZpZGVkIGlkZW50aWZpZXIgdG8gZW5zdXJlIHRoZSBpZGVtcG90ZW5jeSBvZiB0aGUgcmVxdWVzdC5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2xpZW50VG9rZW4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgQVdTIGRhdGEgc291cmNlcyB0aGF0IGhhdmUgYmVlbiBjb25maWd1cmVkIHRvIGhhdmUgSUFNIHJvbGVzIGFuZCBwZXJtaXNzaW9uc1xuICAgKiBjcmVhdGVkIHRvIGFsbG93IEFtYXpvbiBNYW5hZ2VkIEdyYWZhbmEgdG8gcmVhZCBkYXRhIGZyb20gdGhlc2Ugc291cmNlcy5cbiAgICpcbiAgICogVGhpcyBsaXN0IGlzIG9ubHkgdXNlZCB3aGVuIHRoZSB3b3Jrc3BhY2Ugd2FzIGNyZWF0ZWQgdGhyb3VnaCB0aGUgQVdTIGNvbnNvbGUsIGFuZCB0aGVcbiAgICogcGVybWlzc2lvblR5cGUgaXMgU0VSVklDRV9NQU5BR0VELlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBkYXRhU291cmNlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgdXNlci1kZWZpbmVkIGRlc2NyaXB0aW9uIG9mIHRoZSB3b3Jrc3BhY2UuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgbmV0d29yayBhY2Nlc3MgdG8geW91ciB3b3Jrc3BhY2UuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcmtBY2Nlc3NDb250cm9sPzogTmV0d29ya0FjY2Vzc0NvbnRyb2w7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1Mgbm90aWZpY2F0aW9uIGNoYW5uZWxzIHRoYXQgQW1hem9uIE1hbmFnZWQgR3JhZmFuYSBjYW4gYXV0b21hdGljYWxseSBjcmVhdGUgSUFNIHJvbGVzXG4gICAqIGFuZCBwZXJtaXNzaW9ucyBmb3IsIHRvIGFsbG93IEFtYXpvbiBNYW5hZ2VkIEdyYWZhbmEgdG8gdXNlIHRoZXNlIGNoYW5uZWxzLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb25EZXN0aW5hdGlvbnM/OiBOb3RpZmljYXRpb25EZXN0aW5hdGlvbnNbXTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBvcmdhbml6YXRpb25hbCB1bml0cyB0aGF0IHRoaXMgd29ya3NwYWNlIGlzIGFsbG93ZWQgdG8gdXNlIGRhdGEgc291cmNlcyBmcm9tLCBpZlxuICAgKiB0aGlzIHdvcmtzcGFjZSBpcyBpbiBhbiBhY2NvdW50IHRoYXQgaXMgcGFydCBvZiBhbiBvcmdhbml6YXRpb24uXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IG9yZ2FuaXphdGlvbmFsVW5pdHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIElBTSByb2xlIHRoYXQgaXMgdXNlZCB0byBhY2Nlc3MgcmVzb3VyY2VzIHRocm91Z2ggT3JnYW5pemF0aW9ucy5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgb3JnYW5pemF0aW9uUm9sZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElmIHRoaXMgaXMgU0VSVklDRV9NQU5BR0VELCBhbmQgdGhlIHdvcmtwbGFjZSB3YXMgY3JlYXRlZCB0aHJvdWdoIHRoZSBBbWF6b24gTWFuYWdlZCBHcmFmYW5hXG4gICAqIGNvbnNvbGUsIHRoZW4gQW1hem9uIE1hbmFnZWQgR3JhZmFuYSBhdXRvbWF0aWNhbGx5IGNyZWF0ZXMgdGhlIElBTSByb2xlcyBhbmQgcHJvdmlzaW9ucyB0aGVcbiAgICogcGVybWlzc2lvbnMgdGhhdCB0aGUgd29ya3NwYWNlIG5lZWRzIHRvIHVzZSBBV1MgZGF0YSBzb3VyY2VzIGFuZCBub3RpZmljYXRpb24gY2hhbm5lbHMuXG4gICAqXG4gICAqIElmIHRoaXMgaXMgQ1VTVE9NRVJfTUFOQUdFRCwgeW91IG11c3QgbWFuYWdlIHRob3NlIHJvbGVzIGFuZCBwZXJtaXNzaW9ucyB5b3Vyc2VsZi5cbiAgICpcbiAgICogSWYgeW91IGFyZSB3b3JraW5nIHdpdGggYSB3b3Jrc3BhY2UgaW4gYSBtZW1iZXIgYWNjb3VudCBvZiBhbiBvcmdhbml6YXRpb24gYW5kIHRoYXQgYWNjb3VudCBpc1xuICAgKiBub3QgYSBkZWxlZ2F0ZWQgYWRtaW5pc3RyYXRvciBhY2NvdW50LCBhbmQgeW91IHdhbnQgdGhlIHdvcmtzcGFjZSB0byBhY2Nlc3MgZGF0YSBzb3VyY2VzIGluXG4gICAqIG90aGVyIEFXUyBhY2NvdW50cyBpbiB0aGUgb3JnYW5pemF0aW9uLCB0aGlzIHBhcmFtZXRlciBtdXN0IGJlIHNldCB0byBDVVNUT01FUl9NQU5BR0VELlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBwZXJtaXNzaW9uVHlwZTogUGVybWlzc2lvblR5cGVzO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHBsdWdpbiBhZG1pbmlzdHJhdGlvbiBpcyBlbmFibGVkIGluIHRoZSB3b3Jrc3BhY2UuIFNldHRpbmcgdG8gdHJ1ZSBhbGxvd3Mgd29ya3NwYWNlXG4gICAqIGFkbWlucyB0byBpbnN0YWxsLCB1bmluc3RhbGwsIGFuZCB1cGRhdGUgcGx1Z2lucyBmcm9tIHdpdGhpbiB0aGUgR3JhZmFuYSB3b3Jrc3BhY2UuXG4gICAqXG4gICAqIFRoaXMgb3B0aW9uIGlzIG9ubHkgdmFsaWQgZm9yIHdvcmtzcGFjZXMgdGhhdCBzdXBwb3J0IEdyYWZhbmEgdmVyc2lvbiA5IG9yIG5ld2VyLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5BZG1pbkVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgdGhhdCBncmFudHMgcGVybWlzc2lvbnMgdG8gdGhlIEFXUyByZXNvdXJjZXMgdGhhdCB0aGUgd29ya3NwYWNlIHdpbGwgdmlldyBkYXRhXG4gICAqIGZyb20uXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHJvbGU/OiBJUm9sZTtcblxuICAvKipcbiAgICogSWYgdGhlIHdvcmtzcGFjZSB1c2VzIFNBTUwsIHVzZSB0aGlzIHN0cnVjdHVyZSB0byBtYXAgU0FNTCBhc3NlcnRpb24gYXR0cmlidXRlcyB0byB3b3Jrc3BhY2VcbiAgICogdXNlciBpbmZvcm1hdGlvbiBhbmQgZGVmaW5lIHdoaWNoIGdyb3VwcyBpbiB0aGUgYXNzZXJ0aW9uIGF0dHJpYnV0ZSBhcmUgdG8gaGF2ZSB0aGUgQWRtaW4gYW5kXG4gICAqIEVkaXRvciByb2xlcyBpbiB0aGUgd29ya3NwYWNlLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBzYW1sQ29uZmlndXJhdGlvbj86IFNhbWxDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgQVdTIENsb3VkRm9ybWF0aW9uIHN0YWNrIHNldCB0aGF0IGlzIHVzZWQgdG8gZ2VuZXJhdGUgSUFNIHJvbGVzIHRvIGJlIHVzZWQgZm9yXG4gICAqIHRoaXMgd29ya3NwYWNlLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBzdGFja1NldE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciBhbiBBbWF6b24gVlBDIHRoYXQgY29udGFpbnMgZGF0YSBzb3VyY2VzIGZvciB5b3VyIEdyYWZhbmFcbiAgICogd29ya3NwYWNlIHRvIGNvbm5lY3QgdG8uXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHZwY0NvbmZpZ3VyYXRpb24/OiBWcGNDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIElEIG9mIHRoaXMgd29ya3NwYWNlLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB3b3Jrc3BhY2VJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoaXMgd29ya3NwYWNlXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtzcGFjZUFybjogc3RyaW5nO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgV29ya3NwYWNlQmFzZSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVdvcmtzcGFjZSB7XG5cbiAgLyoqXG4gICAqIFRoZSBhY2NvdW50IGFjY2VzcyB0eXBlIGZvciB0aGUgd29ya3NwYWNlLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGFjY291bnRBY2Nlc3NUeXBlOiBBY2NvdW50QWNjZXNzVHlwZTtcblxuICAvKipcbiAgICogVGhlIGF1dGhlbnRpY2F0aW9uIHByb3ZpZGVycyBmb3IgdGhlIHdvcmtzcGFjZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBhdXRoZW50aWNhdGlvblByb3ZpZGVyczogQXV0aGVudGljYXRpb25Qcm92aWRlcnNbXTtcblxuICAvKipcbiAgICogVGhlIGNsaWVudCB0b2tlbiBmb3IgdGhlIHdvcmtzcGFjZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBjbGllbnRUb2tlbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRhdGEgc291cmNlcyBvZiB0aGlzIHdvcmtzcGFjZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGRhdGFTb3VyY2VzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIHdvcmtzcGFjZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGlzIHdvcmtzcGFjZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciBuZXR3b3JrIGFjY2VzcyB0byB5b3VyIHdvcmtzcGFjZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBuZXR3b3JrQWNjZXNzQ29udHJvbD86IE5ldHdvcmtBY2Nlc3NDb250cm9sO1xuXG4gIC8qKlxuICAgKiBUaGUgbm90aWZpY2F0aW9uIGRlc3RpbmF0aW9ucyBmb3IgdGhlIHdvcmtzcGFjZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBub3RpZmljYXRpb25EZXN0aW5hdGlvbnM/OiBOb3RpZmljYXRpb25EZXN0aW5hdGlvbnNbXTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBvcmdhbml6YXRpb25hbCB1bml0cyB0aGF0IHRoaXMgd29ya3NwYWNlIGlzIGFsbG93ZWQgdG8gdXNlIGRhdGEgc291cmNlcyBmcm9tLCBpZlxuICAgKiB0aGlzIHdvcmtzcGFjZSBpcyBpbiBhbiBhY2NvdW50IHRoYXQgaXMgcGFydCBvZiBhbiBvcmdhbml6YXRpb24uXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgb3JnYW5pemF0aW9uYWxVbml0cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgSUFNIHJvbGUgdGhhdCBpcyB1c2VkIHRvIGFjY2VzcyByZXNvdXJjZXMgdGhyb3VnaCBPcmdhbml6YXRpb25zLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IG9yZ2FuaXphdGlvblJvbGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVybWlzc2lvbiB0eXBlIGZvciB0aGUgd29ya3NwYWNlLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHBlcm1pc3Npb25UeXBlOiBQZXJtaXNzaW9uVHlwZXM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgcGx1Z2luIGFkbWluaXN0cmF0aW9uIGlzIGVuYWJsZWQgaW4gdGhlIHdvcmtzcGFjZS4gU2V0dGluZyB0byB0cnVlIGFsbG93cyB3b3Jrc3BhY2VcbiAgICogYWRtaW5zIHRvIGluc3RhbGwsIHVuaW5zdGFsbCwgYW5kIHVwZGF0ZSBwbHVnaW5zIGZyb20gd2l0aGluIHRoZSBHcmFmYW5hIHdvcmtzcGFjZS5cbiAgICpcbiAgICogVGhpcyBvcHRpb24gaXMgb25seSB2YWxpZCBmb3Igd29ya3NwYWNlcyB0aGF0IHN1cHBvcnQgR3JhZmFuYSB2ZXJzaW9uIDkgb3IgbmV3ZXIuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcGx1Z2luQWRtaW5FbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIElBTSByb2xlIHRoYXQgZ3JhbnRzIHBlcm1pc3Npb25zIHRvIHRoZSBBV1MgcmVzb3VyY2VzIHRoYXQgdGhlIHdvcmtzcGFjZSB3aWxsIHZpZXcgZGF0YVxuICAgKiBmcm9tLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHJvbGU/OiBJUm9sZTtcblxuICAvKipcbiAgICogSWYgdGhlIHdvcmtzcGFjZSB1c2VzIFNBTUwsIHVzZSB0aGlzIHN0cnVjdHVyZSB0byBtYXAgU0FNTCBhc3NlcnRpb24gYXR0cmlidXRlcyB0byB3b3Jrc3BhY2VcbiAgICogdXNlciBpbmZvcm1hdGlvbiBhbmQgZGVmaW5lIHdoaWNoIGdyb3VwcyBpbiB0aGUgYXNzZXJ0aW9uIGF0dHJpYnV0ZSBhcmUgdG8gaGF2ZSB0aGUgQWRtaW4gYW5kXG4gICAqIEVkaXRvciByb2xlcyBpbiB0aGUgd29ya3NwYWNlLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHNhbWxDb25maWd1cmF0aW9uPzogU2FtbENvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gc3RhY2sgc2V0IHRoYXQgaXMgdXNlZCB0byBnZW5lcmF0ZSBJQU0gcm9sZXMgdG8gYmUgdXNlZCBmb3JcbiAgICogdGhpcyB3b3Jrc3BhY2UuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgc3RhY2tTZXROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgYW4gQW1hem9uIFZQQyB0aGF0IGNvbnRhaW5zIGRhdGEgc291cmNlcyBmb3IgeW91ciBHcmFmYW5hXG4gICAqIHdvcmtzcGFjZSB0byBjb25uZWN0IHRvLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHZwY0NvbmZpZ3VyYXRpb24/OiBWcGNDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIElEIG9mIHRoaXMgd29ya3NwYWNlLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHdvcmtzcGFjZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhpcyB3b3Jrc3BhY2VcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB3b3Jrc3BhY2VBcm46IHN0cmluZztcblxuICBwcm90ZWN0ZWQgZ2V0V29ya3NwYWNlQXJuKHdvcmtzcGFjZUlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzdGFjayA9IHRoaXMuc3RhY2s7XG4gICAgcmV0dXJuIGBhcm46JHtzdGFjay5wYXJ0aXRpb259OmdyYWZhbmE6JHtzdGFjay5yZWdpb259OiR7c3RhY2suYWNjb3VudH06L3dvcmtzcGFjZXMvJHt3b3Jrc3BhY2VJZH1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFdvcmtzcGFjZUlkKHdvcmtzcGFjZUFybjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHdvcmtzcGFjZUFybi5zdWJzdHJpbmcod29ya3NwYWNlQXJuLmxhc3RJbmRleE9mKCcvJykgKyAxKTtcbiAgfVxufSJdfQ==
@@ -1,238 +1,126 @@
1
- import { IPrefixList, ISecurityGroup, ISubnet, IVpcEndpoint } from 'aws-cdk-lib/aws-ec2';
2
1
  import { IRole } from 'aws-cdk-lib/aws-iam';
3
2
  import { Construct } from 'constructs';
3
+ import { AccountAccessType, AuthenticationProviders, IWorkspace, NetworkAccessControl, NotificationDestinations, PermissionTypes, SamlConfiguration, SamlConfigurationStatuses, Status, VpcConfiguration, WorkspaceBase } from './workspace-base';
4
4
  /**
5
- * Specifies whether the workspace can access AWS resources in this AWS account only, or whether it
6
- * can also access AWS resources in other accounts in the same organization. If this is
7
- * ORGANIZATION, the OrganizationalUnits parameter specifies which organizational units the
8
- * workspace can access.
9
- */
10
- export declare enum AccountAccessType {
11
- /**
12
- * Access is limited to the current AWS account only.
13
- */
14
- CURRENT_ACCOUNT = "CURRENT_ACCOUNT",
15
- /**
16
- * Access is extended to the entire AWS organization.
17
- */
18
- ORGANIZATION = "ORGANIZATION"
19
- }
20
- /**
21
- * Specifies whether this workspace uses SAML 2.0, AWS IAM Identity Center, or both to authenticate
22
- * users for using the Grafana console within a workspace.
23
- *
24
- * @see https://docs.aws.amazon.com/grafana/latest/APIReference/API_CreateWorkspace.html
25
- */
26
- export declare enum AuthenticationProviders {
27
- /**
28
- * AWS Single Sign-On authentication provider.
29
- */
30
- AWS_SSO = "AWS_SSO",
31
- /**
32
- * Security Assertion Markup Language (SAML) authentication provider.
33
- */
34
- SAML = "SAML"
35
- }
36
- /**
37
- * The configuration settings for network access to your workspace.
5
+ * Properties for creating an Amazon Managed Grafana workspace.
38
6
  */
39
- export interface NetworkAccessControl {
7
+ export interface WorkspaceProps {
40
8
  /**
41
- * An array of prefix list IDs. A prefix list is a list of CIDR ranges of IP addresses. The IP
42
- * addresses specified are allowed to access your workspace. If the list is not included in the
43
- * configuration (passed an empty array) then no IP addresses are allowed to access the
44
- * workspace.
9
+ * Specifies whether the workspace can access AWS resources in this AWS account only, or whether
10
+ * it can also access AWS resources in other accounts in the same organization. If this is
11
+ * ORGANIZATION, the OrganizationalUnits parameter specifies which organizational units the
12
+ * workspace can access.
45
13
  *
46
- * Maximum of 5 prefix lists allowed.
14
+ * Required field.
47
15
  */
48
- readonly prefixLists?: IPrefixList[];
16
+ readonly accountAccessType: AccountAccessType;
49
17
  /**
50
- * An array of Amazon VPC endpoint IDs for the workspace. You can create VPC endpoints to your
51
- * Amazon Managed Grafana workspace for access from within a VPC. If a NetworkAccessConfiguration
52
- * is specified then only VPC endpoints specified here are allowed to access the workspace. If
53
- * you pass in an empty array of strings, then no VPCs are allowed to access the workspace.
18
+ * Specifies whether this workspace uses SAML 2.0, AWS IAM Identity Center, or both to
19
+ * authenticate users for using the Grafana console within a workspace.
54
20
  *
55
- * Maximum of 5 VPC endpoints allowed.
56
- */
57
- readonly vpcEndpoints?: IVpcEndpoint[];
58
- }
59
- /**
60
- * The AWS notification channels that Amazon Managed Grafana can automatically create IAM roles and
61
- * permissions for, to allow Amazon Managed Grafana to use these channels.
62
- */
63
- export declare enum NotificationDestinations {
64
- /**
65
- * Amazon Simple Notification Service (SNS) as notification destination.
66
- */
67
- SNS = "SNS"
68
- }
69
- /**
70
- * If this is SERVICE_MANAGED, and the workplace was created through the Amazon Managed Grafana
71
- * console, then Amazon Managed Grafana automatically creates the IAM roles and provisions the
72
- * permissions that the workspace needs to use AWS data sources and notification channels.
73
- *
74
- * If this is CUSTOMER_MANAGED, you must manage those roles and permissions yourself.
75
-
76
- * If you are working with a workspace in a member account of an organization and that account is
77
- * not a delegated administrator account, and you want the workspace to access data sources in
78
- * other AWS accounts in the organization, this parameter must be set to CUSTOMER_MANAGED.
79
- */
80
- export declare enum PermissionTypes {
81
- /**
82
- * Customer-managed permissions where you manage user access to Grafana.
21
+ * Required field.
83
22
  */
84
- CUSTOMER_MANAGED = "CUSTOMER_MANAGED",
23
+ readonly authenticationProviders: AuthenticationProviders[];
85
24
  /**
86
- * Service-managed permissions where AWS manages user access to Grafana.
25
+ * A unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.
26
+ *
27
+ * Must be 1-64 characters long and contain only printable ASCII characters.
87
28
  */
88
- SERVICE_MANAGED = "SERVICE_MANAGED"
89
- }
90
- /**
91
- * A structure that defines which attributes in the IdP assertion are to be used to define
92
- * information about the users authenticated by the IdP to use the workspace.
93
- *
94
- * Each attribute must be a string with length between 1 and 256 characters.
95
- */
96
- export interface SamlAssertionAttributes {
29
+ readonly clientToken?: string;
97
30
  /**
98
- * The name of the attribute within the SAML assertion to use as the email names for SAML users.
99
- *
100
- * Must be between 1 and 256 characters long.
31
+ * Specifies the AWS data sources that have been configured to have IAM roles and permissions
32
+ * created to allow Amazon Managed Grafana to read data from these sources.
33
+ * This list is only used when the workspace was created through the AWS console, and the
34
+ * permissionType is SERVICE_MANAGED.
101
35
  */
102
- readonly email?: string;
36
+ readonly dataSources?: string[];
103
37
  /**
104
- * The name of the attribute within the SAML assertion to use as the user full "friendly" names
105
- * for user groups.
38
+ * The user-defined description of the workspace.
106
39
  *
107
- * Must be between 1 and 256 characters long.
40
+ * Maximum length of 2048 characters.
108
41
  */
109
- readonly groups?: string;
42
+ readonly description?: string;
110
43
  /**
111
- * The name of the attribute within the SAML assertion to use as the login names for SAML users.
44
+ * Specifies the version of Grafana to support in the workspace. Defaults to the latest version
45
+ * on create (for example, 9.4), or the current version of the workspace on update.
46
+ * Can only be used to upgrade (for example, from 8.4 to 9.4), not downgrade (for example, from
47
+ * 9.4 to 8.4).
112
48
  *
113
- * Must be between 1 and 256 characters long.
49
+ * Must be 1-255 characters long.
114
50
  */
115
- readonly login?: string;
51
+ readonly grafanaVersion?: string;
116
52
  /**
117
- * The name of the attribute within the SAML assertion to use as the user full "friendly" names
118
- * for SAML users.
53
+ * The name of the workspace.
119
54
  *
120
- * Must be between 1 and 256 characters long.
55
+ * Must be 1-255 characters long and contain only alphanumeric characters, hyphens, dots,
56
+ * underscores, and tildes.
121
57
  */
122
58
  readonly name?: string;
123
59
  /**
124
- * The name of the attribute within the SAML assertion to use as the user full "friendly" names
125
- * for the users' organizations.
126
- *
127
- * Must be between 1 and 256 characters long.
60
+ * The configuration settings for network access to your workspace.
128
61
  */
129
- readonly org?: string;
62
+ readonly networkAccessControl?: NetworkAccessControl;
130
63
  /**
131
- * The name of the attribute within the SAML assertion to use as the user roles.
132
- *
133
- * Must be between 1 and 256 characters long.
64
+ * The AWS notification channels that Amazon Managed Grafana can automatically create IAM roles
65
+ * and permissions for, to allow Amazon Managed Grafana to use these channels.
134
66
  */
135
- readonly role?: string;
136
- }
137
- /**
138
- * A structure containing the identity provider (IdP) metadata used to integrate the identity
139
- * provider with this workspace.
140
- */
141
- export interface SamlIdpMetadata {
67
+ readonly notificationDestinations?: NotificationDestinations[];
142
68
  /**
143
- * The URL of the location containing the IdP metadata.
144
- *
145
- * Must be a string with length between 1 and 2048 characters.
69
+ * Specifies the organizational units that this workspace is allowed to use data sources from, if
70
+ * this workspace is in an account that is part of an organization.
146
71
  */
147
- readonly url?: string;
72
+ readonly organizationalUnits?: string[];
148
73
  /**
149
- * The full IdP metadata, in XML format.
74
+ * Name of the IAM role to use for the organization.
75
+ * Maximum length of 2048 characters.
150
76
  */
151
- readonly xml?: string;
152
- }
153
- /**
154
- * A structure containing arrays that map group names in the SAML assertion to the Grafana Admin
155
- * and Editor roles in the workspace.
156
- */
157
- export interface SamlRoleValues {
77
+ readonly organizationRoleName?: string;
158
78
  /**
159
- * A list of groups from the SAML assertion attribute to grant the Grafana Admin role to.
79
+ * If this is SERVICE_MANAGED, and the workplace was created through the Amazon Managed Grafana
80
+ * console, then Amazon Managed Grafana automatically creates the IAM roles and provisions the
81
+ * permissions that the workspace needs to use AWS data sources and notification channels.
160
82
  *
161
- * Maximum of 256 elements.
162
- */
163
- readonly admin?: string[];
164
- /**
165
- * A list of groups from the SAML assertion attribute to grant the Grafana Editor role to.
83
+ * If this is CUSTOMER_MANAGED, you must manage those roles and permissions yourself.
166
84
  *
167
- * Maximum of 256 elements.
168
- */
169
- readonly editor?: string[];
170
- }
171
- /**
172
- * If the workspace uses SAML, use this structure to map SAML assertion attributes to workspace
173
- * user information and define which groups in the assertion attribute are to have the Admin and
174
- * Editor roles in the workspace.
175
- */
176
- export interface SamlConfiguration {
177
- /**
178
- * Lists which organizations defined in the SAML assertion are allowed to use the Amazon Managed
179
- * Grafana workspace. If this is empty, all organizations in the assertion attribute have access.
85
+ * If you are working with a workspace in a member account of an organization and that account is
86
+ * not a delegated administrator account, and you want the workspace to access data sources in
87
+ * other AWS accounts in the organization, this parameter must be set to CUSTOMER_MANAGED.
180
88
  *
181
- * Must have between 1 and 256 elements.
182
- */
183
- readonly allowedOrganizations?: string[];
184
- /**
185
- * A structure that defines which attributes in the SAML assertion are to be used to define
186
- * information about the users authenticated by that IdP to use the workspace.
89
+ * Required field.
187
90
  */
188
- readonly assertionAtrributes?: SamlAssertionAttributes;
91
+ readonly permissionType: PermissionTypes;
189
92
  /**
190
- * A structure containing the identity provider (IdP) metadata used to integrate the identity
191
- * provider with this workspace.
93
+ * Whether plugin administration is enabled in the workspace. Setting to true allows workspace
94
+ * admins to install, uninstall, and update plugins from within the Grafana workspace.
95
+ *
96
+ * This option is only valid for workspaces that support Grafana version 9 or newer.
192
97
  *
193
- * Required field for SAML configuration.
98
+ * Default: false
194
99
  */
195
- readonly idpMetadata: SamlIdpMetadata;
100
+ readonly pluginAdminEnabled?: boolean;
196
101
  /**
197
- * How long a sign-on session by a SAML user is valid, before the user has to sign on again.
198
- *
199
- * Must be a positive number.
102
+ * The IAM role that grants permissions to the AWS resources that the workspace will view data
103
+ * from.
200
104
  */
201
- readonly loginValidityDuration?: number;
105
+ readonly role?: IRole;
202
106
  /**
203
- * A structure containing arrays that map group names in the SAML assertion to the Grafana Admin
204
- * and Editor roles in the workspace.
107
+ * If the workspace uses SAML, use this structure to map SAML assertion attributes to workspace
108
+ * user information and define which groups in the assertion attribute are to have the Admin and
109
+ * Editor roles in the workspace.
205
110
  */
206
- readonly roleValues?: SamlRoleValues;
207
- }
208
- /**
209
- * The configuration settings for an Amazon VPC that contains data sources for your Grafana
210
- * workspace to connect to.
211
- */
212
- export interface VpcConfiguration {
111
+ readonly samlConfiguration?: SamlConfiguration;
213
112
  /**
214
- * The list of Amazon EC2 security groups attached to the Amazon VPC for your Grafana
215
- * workspace to connect. Duplicates not allowed.
216
- *
217
- * Array Members: Minimum number of 1 items. Maximum number of 5 items.
218
- *
219
- * Required for VPC configuration.
113
+ * The name of the AWS CloudFormation stack set that is used to generate IAM roles to be used for
114
+ * this workspace.
220
115
  */
221
- readonly securityGroups: ISecurityGroup[];
116
+ readonly stackSetName?: string;
222
117
  /**
223
- * The list of Amazon EC2 subnets created in the Amazon VPC for your Grafana workspace to
224
- * connect. Duplicates not allowed.
225
- *
226
- * Array Members: Minimum number of 2 items. Maximum number of 6 items.
227
- *
228
- * Required for VPC configuration.
118
+ * The configuration settings for an Amazon VPC that contains data sources for your Grafana
119
+ * workspace to connect to.
229
120
  */
230
- readonly subnets: ISubnet[];
121
+ readonly vpcConfiguration?: VpcConfiguration;
231
122
  }
232
- /**
233
- * Properties for creating an Amazon Managed Grafana workspace.
234
- */
235
- export interface WorkspaceProps {
123
+ export interface WorkspaceAttributes {
236
124
  /**
237
125
  * Specifies whether the workspace can access AWS resources in this AWS account only, or whether
238
126
  * it can also access AWS resources in other accounts in the same organization. If this is
@@ -268,15 +156,6 @@ export interface WorkspaceProps {
268
156
  * Maximum length of 2048 characters.
269
157
  */
270
158
  readonly description?: string;
271
- /**
272
- * Specifies the version of Grafana to support in the workspace. Defaults to the latest version
273
- * on create (for example, 9.4), or the current version of the workspace on update.
274
- * Can only be used to upgrade (for example, from 8.4 to 9.4), not downgrade (for example, from
275
- * 9.4 to 8.4).
276
- *
277
- * Must be 1-255 characters long.
278
- */
279
- readonly grafanaVersion?: string;
280
159
  /**
281
160
  * The name of the workspace.
282
161
  *
@@ -347,75 +226,26 @@ export interface WorkspaceProps {
347
226
  * workspace to connect to.
348
227
  */
349
228
  readonly vpcConfiguration?: VpcConfiguration;
350
- }
351
- /**
352
- * Status of SAML configuration for a Grafana workspace.
353
- */
354
- export declare enum SamlConfigurationStatuses {
355
- /**
356
- * SAML is configured for the workspace.
357
- */
358
- CONFIGURED = "CONFIGURED",
359
- /**
360
- * SAML is not configured for the workspace.
361
- */
362
- NOT_CONFIGURED = "NOT_CONFIGURED"
363
- }
364
- /**
365
- * Status of a Grafana workspace.
366
- */
367
- export declare enum Status {
368
- /**
369
- * Workspace is active and ready to use.
370
- */
371
- ACTIVE = "ACTIVE",
372
229
  /**
373
- * Workspace is being created.
374
- */
375
- CREATING = "CREATING",
376
- /**
377
- * Workspace is being deleted.
378
- */
379
- DELETING = "DELETING",
380
- /**
381
- * Workspace operation has failed.
382
- */
383
- FAILED = "FAILED",
384
- /**
385
- * Workspace is being updated.
386
- */
387
- UPDATING = "UPDATING",
388
- /**
389
- * Workspace is being upgraded.
390
- */
391
- UPGRADING = "UPGRADING",
392
- /**
393
- * Workspace deletion has failed.
394
- */
395
- DELETION_FAILED = "DELETION_FAILED",
396
- /**
397
- * Workspace creation has failed.
398
- */
399
- CREATION_FAILED = "CREATION_FAILED",
400
- /**
401
- * Workspace update has failed.
402
- */
403
- UPDATE_FAILED = "UPDATE_FAILED",
404
- /**
405
- * Workspace upgrade has failed.
230
+ * The arn of this workspace.
231
+ *
232
+ * Either this or the workspaceId must be provided.
406
233
  */
407
- UPGRADE_FAILED = "UPGRADE_FAILED",
234
+ readonly workspaceArn?: string;
408
235
  /**
409
- * License removal has failed.
236
+ * The unique ID of this workspace.
237
+ *
238
+ * Either this or the workspaceArn must be provided.
410
239
  */
411
- LICENSE_REMOVAL_FAILED = "LICENSE_REMOVAL_FAILED"
240
+ readonly workspaceId?: string;
412
241
  }
413
242
  /**
414
243
  * Specifies a workspace. In a workspace, you can create Grafana dashboards and visualizations to
415
244
  * analyze your metrics, logs, and traces. You don't have to build, package, or deploy any hardware
416
245
  * to run the Grafana server.
417
246
  */
418
- export declare class Workspace extends Construct {
247
+ export declare class Workspace extends WorkspaceBase {
248
+ static fromWorkspaceAttributes(scope: Construct, id: string, attrs: WorkspaceAttributes): IWorkspace;
419
249
  /**
420
250
  * Validates the clientToken property.
421
251
  *
@@ -656,7 +486,7 @@ export declare class Workspace extends Construct {
656
486
  /**
657
487
  * The unique ID of this workspace.
658
488
  */
659
- readonly id: string;
489
+ readonly workspaceId: string;
660
490
  /**
661
491
  * The most recent date that the workspace was modified.
662
492
  */
@@ -674,5 +504,9 @@ export declare class Workspace extends Construct {
674
504
  * The current status of the workspace.
675
505
  */
676
506
  readonly status: Status;
507
+ /**
508
+ * The arn of this workspace.
509
+ */
510
+ readonly workspaceArn: string;
677
511
  constructor(scope: Construct, id: string, props: WorkspaceProps);
678
512
  }