cdk-iam-floyd
Version:
AWS IAM policy statement generator with fluent interface for AWS CDK
231 lines • 19.6 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Qapps = void 0;
const shared_1 = require("../../shared");
/**
* Statement provider for service [qapps](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonqbusinessqapps.html).
*
* @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement
*/
class Qapps extends shared_1.PolicyStatement {
/**
* Grants permission to associate Q App with a user in Q Business application
*
* Access Level: Write
*/
toAssociateQAppWithUser() {
return this.to('AssociateQAppWithUser');
}
/**
* Grants permission to copy Q App in Q Business application
*
* Access Level: Write
*/
toCopyQApp() {
return this.to('CopyQApp');
}
/**
* Grants permission to create a library item in Q Business application
*
* Access Level: Write
*/
toCreateLibraryItem() {
return this.to('CreateLibraryItem');
}
/**
* Grants permission to create a library item review in Q Business application
*
* Access Level: Write
*/
toCreateLibraryItemReview() {
return this.to('CreateLibraryItemReview');
}
/**
* Grants permission to create Q App in Q Business application
*
* Access Level: Write
*/
toCreateQApp() {
return this.to('CreateQApp');
}
/**
* Grants permission to subscribe to a Q App event bus topic in Q Business application
*
* Access Level: Write
*/
toCreateSubscriptionToken() {
return this.to('CreateSubscriptionToken');
}
/**
* Grants permission to delete a library item in Q Business application
*
* Access Level: Write
*/
toDeleteLibraryItem() {
return this.to('DeleteLibraryItem');
}
/**
* Grants permission to delete Q App in Q Business application
*
* Access Level: Write
*/
toDeleteQApp() {
return this.to('DeleteQApp');
}
/**
* Grants permission to disassociate Q App with a user in Q Business application
*
* Access Level: Write
*/
toDisassociateQAppFromUser() {
return this.to('DisassociateQAppFromUser');
}
/**
* Grants permission to get a library item in Q Business application
*
* Access Level: Read
*/
toGetLibraryItem() {
return this.to('GetLibraryItem');
}
/**
* Grants permission to get Q App in Q Business application
*
* Access Level: Read
*/
toGetQApp() {
return this.to('GetQApp');
}
/**
* Grants permission to import a document to Q App in Q Business application
*
* Access Level: Write
*/
toImportDocumentToQApp() {
return this.to('ImportDocumentToQApp');
}
/**
* Grants permission to import a document to Q App session in Q Business application
*
* Access Level: Write
*/
toImportDocumentToQAppSession() {
return this.to('ImportDocumentToQAppSession');
}
/**
* Grants permission to list library items in Q Business application
*
* Access Level: List
*/
toListLibraryItems() {
return this.to('ListLibraryItems');
}
/**
* Grants permission to list Q Apps in Q Business application
*
* Access Level: List
*/
toListQApps() {
return this.to('ListQApps');
}
/**
* Grants permission to predict problem statement from conversation log in Q Business application
*
* Access Level: Write
*/
toPredictProblemStatementFromConversation() {
return this.to('PredictProblemStatementFromConversation');
}
/**
* Grants permission to predict Q App metadata from problem statement in Q Business application
*
* Access Level: Write
*/
toPredictQAppFromProblemStatement() {
return this.to('PredictQAppFromProblemStatement');
}
/**
* Grants permission to start Q App session in Q Business application
*
* Access Level: Write
*/
toStartQAppSession() {
return this.to('StartQAppSession');
}
/**
* Grants permission to stop Q App session in Q Business application
*
* Access Level: Write
*/
toStopQAppSession() {
return this.to('StopQAppSession');
}
/**
* Grants permission to update a library item in Q Business application
*
* Access Level: Write
*/
toUpdateLibraryItem() {
return this.to('UpdateLibraryItem');
}
/**
* Grants permission to update Q App in Q Business application
*
* Access Level: Write
*/
toUpdateQApp() {
return this.to('UpdateQApp');
}
/**
* Adds a resource of type application to the statement
*
* https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/create-app.html
*
* @param applicationId - Identifier for the applicationId.
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
* @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region.
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
*/
onApplication(applicationId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:qbusiness:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:application/${applicationId}`);
}
/**
* Statement provider for service [qapps](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonqbusinessqapps.html).
*
*/
constructor(props) {
super(props);
this.servicePrefix = 'qapps';
this.accessLevelList = {
Write: [
'AssociateQAppWithUser',
'CopyQApp',
'CreateLibraryItem',
'CreateLibraryItemReview',
'CreateQApp',
'CreateSubscriptionToken',
'DeleteLibraryItem',
'DeleteQApp',
'DisassociateQAppFromUser',
'ImportDocumentToQApp',
'ImportDocumentToQAppSession',
'PredictProblemStatementFromConversation',
'PredictQAppFromProblemStatement',
'StartQAppSession',
'StopQAppSession',
'UpdateLibraryItem',
'UpdateQApp'
],
Read: [
'GetLibraryItem',
'GetQApp'
],
List: [
'ListLibraryItems',
'ListQApps'
]
};
}
}
exports.Qapps = Qapps;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicWJ1c2luZXNzcWFwcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJxYnVzaW5lc3NxYXBwcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBK0M7QUFHL0M7Ozs7R0FJRztBQUNILE1BQWEsS0FBTSxTQUFRLHdCQUFlO0lBR3hDOzs7O09BSUc7SUFDSSx1QkFBdUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksbUJBQW1CO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0kseUJBQXlCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSx5QkFBeUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxtQkFBbUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLDBCQUEwQjtRQUMvQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGdCQUFnQjtRQUNyQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxzQkFBc0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSw2QkFBNkI7UUFDbEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxrQkFBa0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHlDQUF5QztRQUM5QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMseUNBQXlDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGlDQUFpQztRQUN0QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGtCQUFrQjtRQUN2QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGlCQUFpQjtRQUN0QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLG1CQUFtQjtRQUN4QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFlBQVk7UUFDakIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFnQ0Q7Ozs7Ozs7OztPQVNHO0lBQ0ksYUFBYSxDQUFDLGFBQXFCLEVBQUUsT0FBZ0IsRUFBRSxNQUFlLEVBQUUsU0FBa0I7UUFDL0YsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQVEsU0FBUyxJQUFJLElBQUksQ0FBQyxnQkFBaUIsY0FBZSxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWMsSUFBSyxPQUFPLElBQUksSUFBSSxDQUFDLGNBQWUsZ0JBQWlCLGFBQWMsRUFBRSxDQUFDLENBQUM7SUFDL0ssQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksS0FBZ0M7UUFDMUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBaFBSLGtCQUFhLEdBQUcsT0FBTyxDQUFDO1FBK0xyQixvQkFBZSxHQUFvQjtZQUMzQyxLQUFLLEVBQUU7Z0JBQ0wsdUJBQXVCO2dCQUN2QixVQUFVO2dCQUNWLG1CQUFtQjtnQkFDbkIseUJBQXlCO2dCQUN6QixZQUFZO2dCQUNaLHlCQUF5QjtnQkFDekIsbUJBQW1CO2dCQUNuQixZQUFZO2dCQUNaLDBCQUEwQjtnQkFDMUIsc0JBQXNCO2dCQUN0Qiw2QkFBNkI7Z0JBQzdCLHlDQUF5QztnQkFDekMsaUNBQWlDO2dCQUNqQyxrQkFBa0I7Z0JBQ2xCLGlCQUFpQjtnQkFDakIsbUJBQW1CO2dCQUNuQixZQUFZO2FBQ2I7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osZ0JBQWdCO2dCQUNoQixTQUFTO2FBQ1Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osa0JBQWtCO2dCQUNsQixXQUFXO2FBQ1o7U0FDRixDQUFDO0lBc0JGLENBQUM7Q0FDRjtBQW5QRCxzQkFtUEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2Nlc3NMZXZlbExpc3QgfSBmcm9tICcuLi8uLi9zaGFyZWQvYWNjZXNzLWxldmVsJztcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBhd3NfaWFtIGFzIGlhbSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuXG4vKipcbiAqIFN0YXRlbWVudCBwcm92aWRlciBmb3Igc2VydmljZSBbcWFwcHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2FtYXpvbnFidXNpbmVzc3FhcHBzLmh0bWwpLlxuICpcbiAqIEBwYXJhbSBzaWQgW1NJRF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19zaWQuaHRtbCkgb2YgdGhlIHN0YXRlbWVudFxuICovXG5leHBvcnQgY2xhc3MgUWFwcHMgZXh0ZW5kcyBQb2xpY3lTdGF0ZW1lbnQge1xuICBwdWJsaWMgc2VydmljZVByZWZpeCA9ICdxYXBwcyc7XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGFzc29jaWF0ZSBRIEFwcCB3aXRoIGEgdXNlciBpbiBRIEJ1c2luZXNzIGFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICovXG4gIHB1YmxpYyB0b0Fzc29jaWF0ZVFBcHBXaXRoVXNlcigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQXNzb2NpYXRlUUFwcFdpdGhVc2VyJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY29weSBRIEFwcCBpbiBRIEJ1c2luZXNzIGFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICovXG4gIHB1YmxpYyB0b0NvcHlRQXBwKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDb3B5UUFwcCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhIGxpYnJhcnkgaXRlbSBpbiBRIEJ1c2luZXNzIGFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUxpYnJhcnlJdGVtKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVMaWJyYXJ5SXRlbScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhIGxpYnJhcnkgaXRlbSByZXZpZXcgaW4gUSBCdXNpbmVzcyBhcHBsaWNhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVMaWJyYXJ5SXRlbVJldmlldygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlTGlicmFyeUl0ZW1SZXZpZXcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgUSBBcHAgaW4gUSBCdXNpbmVzcyBhcHBsaWNhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVRQXBwKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVRQXBwJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gc3Vic2NyaWJlIHRvIGEgUSBBcHAgZXZlbnQgYnVzIHRvcGljIGluIFEgQnVzaW5lc3MgYXBwbGljYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlU3Vic2NyaXB0aW9uVG9rZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZVN1YnNjcmlwdGlvblRva2VuJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGEgbGlicmFyeSBpdGVtIGluIFEgQnVzaW5lc3MgYXBwbGljYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlTGlicmFyeUl0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZUxpYnJhcnlJdGVtJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIFEgQXBwIGluIFEgQnVzaW5lc3MgYXBwbGljYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlUUFwcCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlUUFwcCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRpc2Fzc29jaWF0ZSBRIEFwcCB3aXRoIGEgdXNlciBpbiBRIEJ1c2luZXNzIGFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICovXG4gIHB1YmxpYyB0b0Rpc2Fzc29jaWF0ZVFBcHBGcm9tVXNlcigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGlzYXNzb2NpYXRlUUFwcEZyb21Vc2VyJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZ2V0IGEgbGlicmFyeSBpdGVtIGluIFEgQnVzaW5lc3MgYXBwbGljYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqL1xuICBwdWJsaWMgdG9HZXRMaWJyYXJ5SXRlbSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0TGlicmFyeUl0ZW0nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBnZXQgUSBBcHAgaW4gUSBCdXNpbmVzcyBhcHBsaWNhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICovXG4gIHB1YmxpYyB0b0dldFFBcHAoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldFFBcHAnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBpbXBvcnQgYSBkb2N1bWVudCB0byBRIEFwcCBpbiBRIEJ1c2luZXNzIGFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICovXG4gIHB1YmxpYyB0b0ltcG9ydERvY3VtZW50VG9RQXBwKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdJbXBvcnREb2N1bWVudFRvUUFwcCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGltcG9ydCBhIGRvY3VtZW50IHRvIFEgQXBwIHNlc3Npb24gaW4gUSBCdXNpbmVzcyBhcHBsaWNhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqL1xuICBwdWJsaWMgdG9JbXBvcnREb2N1bWVudFRvUUFwcFNlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0ltcG9ydERvY3VtZW50VG9RQXBwU2Vzc2lvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgbGlicmFyeSBpdGVtcyBpbiBRIEJ1c2luZXNzIGFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKi9cbiAgcHVibGljIHRvTGlzdExpYnJhcnlJdGVtcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdExpYnJhcnlJdGVtcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgUSBBcHBzIGluIFEgQnVzaW5lc3MgYXBwbGljYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqL1xuICBwdWJsaWMgdG9MaXN0UUFwcHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RRQXBwcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHByZWRpY3QgcHJvYmxlbSBzdGF0ZW1lbnQgZnJvbSBjb252ZXJzYXRpb24gbG9nIGluIFEgQnVzaW5lc3MgYXBwbGljYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKi9cbiAgcHVibGljIHRvUHJlZGljdFByb2JsZW1TdGF0ZW1lbnRGcm9tQ29udmVyc2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdQcmVkaWN0UHJvYmxlbVN0YXRlbWVudEZyb21Db252ZXJzYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBwcmVkaWN0IFEgQXBwIG1ldGFkYXRhIGZyb20gcHJvYmxlbSBzdGF0ZW1lbnQgaW4gUSBCdXNpbmVzcyBhcHBsaWNhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqL1xuICBwdWJsaWMgdG9QcmVkaWN0UUFwcEZyb21Qcm9ibGVtU3RhdGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdQcmVkaWN0UUFwcEZyb21Qcm9ibGVtU3RhdGVtZW50Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gc3RhcnQgUSBBcHAgc2Vzc2lvbiBpbiBRIEJ1c2luZXNzIGFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICovXG4gIHB1YmxpYyB0b1N0YXJ0UUFwcFNlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1N0YXJ0UUFwcFNlc3Npb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzdG9wIFEgQXBwIHNlc3Npb24gaW4gUSBCdXNpbmVzcyBhcHBsaWNhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqL1xuICBwdWJsaWMgdG9TdG9wUUFwcFNlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1N0b3BRQXBwU2Vzc2lvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBhIGxpYnJhcnkgaXRlbSBpbiBRIEJ1c2luZXNzIGFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZUxpYnJhcnlJdGVtKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVMaWJyYXJ5SXRlbScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBRIEFwcCBpbiBRIEJ1c2luZXNzIGFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZVFBcHAoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZVFBcHAnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhY2Nlc3NMZXZlbExpc3Q6IEFjY2Vzc0xldmVsTGlzdCA9IHtcbiAgICBXcml0ZTogW1xuICAgICAgJ0Fzc29jaWF0ZVFBcHBXaXRoVXNlcicsXG4gICAgICAnQ29weVFBcHAnLFxuICAgICAgJ0NyZWF0ZUxpYnJhcnlJdGVtJyxcbiAgICAgICdDcmVhdGVMaWJyYXJ5SXRlbVJldmlldycsXG4gICAgICAnQ3JlYXRlUUFwcCcsXG4gICAgICAnQ3JlYXRlU3Vic2NyaXB0aW9uVG9rZW4nLFxuICAgICAgJ0RlbGV0ZUxpYnJhcnlJdGVtJyxcbiAgICAgICdEZWxldGVRQXBwJyxcbiAgICAgICdEaXNhc3NvY2lhdGVRQXBwRnJvbVVzZXInLFxuICAgICAgJ0ltcG9ydERvY3VtZW50VG9RQXBwJyxcbiAgICAgICdJbXBvcnREb2N1bWVudFRvUUFwcFNlc3Npb24nLFxuICAgICAgJ1ByZWRpY3RQcm9ibGVtU3RhdGVtZW50RnJvbUNvbnZlcnNhdGlvbicsXG4gICAgICAnUHJlZGljdFFBcHBGcm9tUHJvYmxlbVN0YXRlbWVudCcsXG4gICAgICAnU3RhcnRRQXBwU2Vzc2lvbicsXG4gICAgICAnU3RvcFFBcHBTZXNzaW9uJyxcbiAgICAgICdVcGRhdGVMaWJyYXJ5SXRlbScsXG4gICAgICAnVXBkYXRlUUFwcCdcbiAgICBdLFxuICAgIFJlYWQ6IFtcbiAgICAgICdHZXRMaWJyYXJ5SXRlbScsXG4gICAgICAnR2V0UUFwcCdcbiAgICBdLFxuICAgIExpc3Q6IFtcbiAgICAgICdMaXN0TGlicmFyeUl0ZW1zJyxcbiAgICAgICdMaXN0UUFwcHMnXG4gICAgXVxuICB9O1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBhcHBsaWNhdGlvbiB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25xL2xhdGVzdC9xYnVzaW5lc3MtdWcvY3JlYXRlLWFwcC5odG1sXG4gICAqXG4gICAqIEBwYXJhbSBhcHBsaWNhdGlvbklkIC0gSWRlbnRpZmllciBmb3IgdGhlIGFwcGxpY2F0aW9uSWQuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKi9cbiAgcHVibGljIG9uQXBwbGljYXRpb24oYXBwbGljYXRpb25JZDogc3RyaW5nLCBhY2NvdW50Pzogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OnFidXNpbmVzczokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06YXBwbGljYXRpb24vJHsgYXBwbGljYXRpb25JZCB9YCk7XG4gIH1cblxuICAvKipcbiAgICogU3RhdGVtZW50IHByb3ZpZGVyIGZvciBzZXJ2aWNlIFtxYXBwc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfYW1hem9ucWJ1c2luZXNzcWFwcHMuaHRtbCkuXG4gICAqXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wcz86IGlhbS5Qb2xpY3lTdGF0ZW1lbnRQcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxufVxuIl19