cdk-iam-floyd
Version:
AWS IAM policy statement generator with fluent interface for AWS CDK
142 lines • 14.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PartnercentralAccountManagement = void 0;
const shared_1 = require("../../shared");
/**
* Statement provider for service [partnercentral-account-management](https://docs.aws.amazon.com/service-authorization/latest/reference/list_partnercentral-account-management.html).
*
* @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement
*/
class PartnercentralAccountManagement extends shared_1.PolicyStatement {
/**
* Grants permission to associate Partner user to IAM role
*
* Access Level: Write
*
* https://docs.aws.amazon.com/partner-central/latest/getting-started/controlling-access-in-apc-account-management.html
*/
toAssociatePartnerUser() {
return this.to('AssociatePartnerUser');
}
/**
* Grants permission to disassociate Partner user to IAM role
*
* Access Level: Write
*
* https://docs.aws.amazon.com/partner-central/latest/getting-started/controlling-access-in-apc-account-management.html
*/
toDisassociatePartnerUser() {
return this.to('DisassociatePartnerUser');
}
/**
* Grants permission to Single Sign-On from AWS Partner Central into Legacy Partner Central
*
* Access Level: Write
*
* Possible conditions:
* - .ifLegacyPartnerCentralRole()
*
* https://docs.aws.amazon.com/partner-central/latest/getting-started/controlling-access-in-apc-account-management.html
*/
toAccessLegacyPartnerCentral() {
return this.to('AccessLegacyPartnerCentral');
}
/**
* Grants permission to Single Sign-On from AWS Partner Central into Marketing Central
*
* Access Level: Write
*
* Possible conditions:
* - .ifMarketingCentralRole()
*
* https://docs.aws.amazon.com/partner-central/latest/getting-started/controlling-access-in-apc-account-management.html
*/
toAccessMarketingCentral() {
return this.to('AccessMarketingCentral');
}
/**
* Grants permission to Single Sign-On from AWS Partner Central into ProServe Tools
*
* Access Level: Write
*
* Possible conditions:
* - .ifProServeRole()
*
* https://docs.aws.amazon.com/partner-central/latest/getting-started/controlling-access-in-apc-account-management.html
*/
toAccessProServeTools() {
return this.to('AccessProServeTools');
}
/**
* Grants permission to associate Partner account to AWS account
*
* Access Level: Write
*
* https://docs.aws.amazon.com/partner-central/latest/getting-started/controlling-access-in-apc-account-management.html
*/
toAssociatePartnerAccount() {
return this.to('AssociatePartnerAccount');
}
/**
* Filters access by the Legacy Partner Central role
*
* https://docs.aws.amazon.com/partner-central/latest/getting-started/controlling-access-in-apc-account-management.html
*
* Applies to actions:
* - .toAccessLegacyPartnerCentral()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifLegacyPartnerCentralRole(value, operator) {
return this.if(`LegacyPartnerCentralRole`, value, operator ?? 'StringLike');
}
/**
* Filters access by Marketing Central role
*
* https://docs.aws.amazon.com/partner-central/latest/getting-started/controlling-access-in-apc-account-management.html
*
* Applies to actions:
* - .toAccessMarketingCentral()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifMarketingCentralRole(value, operator) {
return this.if(`MarketingCentralRole`, value, operator ?? 'StringLike');
}
/**
* Filters access by ProServe Tools role
*
* https://docs.aws.amazon.com/partner-central/latest/getting-started/controlling-access-in-apc-account-management.html
*
* Applies to actions:
* - .toAccessProServeTools()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifProServeRole(value, operator) {
return this.if(`ProServeRole`, value, operator ?? 'StringLike');
}
/**
* Statement provider for service [partnercentral-account-management](https://docs.aws.amazon.com/service-authorization/latest/reference/list_partnercentral-account-management.html).
*
*/
constructor(props) {
super(props);
this.servicePrefix = 'partnercentral-account-management';
this.accessLevelList = {
Write: [
'AssociatePartnerUser',
'DisassociatePartnerUser',
'AccessLegacyPartnerCentral',
'AccessMarketingCentral',
'AccessProServeTools',
'AssociatePartnerAccount'
]
};
}
}
exports.PartnercentralAccountManagement = PartnercentralAccountManagement;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydG5lcmNlbnRyYWwtYWNjb3VudC1tYW5hZ2VtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGFydG5lcmNlbnRyYWwtYWNjb3VudC1tYW5hZ2VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlDQUF5RDtBQUd6RDs7OztHQUlHO0FBQ0gsTUFBYSwrQkFBZ0MsU0FBUSx3QkFBZTtJQUdsRTs7Ozs7O09BTUc7SUFDSSxzQkFBc0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHlCQUF5QjtRQUM5QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksNEJBQTRCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSx3QkFBd0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0kseUJBQXlCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFhRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksMEJBQTBCLENBQUMsS0FBd0IsRUFBRSxRQUE0QjtRQUN0RixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxFQUFFLFFBQVEsSUFBSSxZQUFZLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLHNCQUFzQixDQUFDLEtBQXdCLEVBQUUsUUFBNEI7UUFDbEYsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHNCQUFzQixFQUFFLEtBQUssRUFBRSxRQUFRLElBQUksWUFBWSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxjQUFjLENBQUMsS0FBd0IsRUFBRSxRQUE0QjtRQUMxRSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLEtBQUssRUFBRSxRQUFRLElBQUksWUFBWSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksS0FBZ0M7UUFDMUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBMUlSLGtCQUFhLEdBQUcsbUNBQW1DLENBQUM7UUE2RWpELG9CQUFlLEdBQW9CO1lBQzNDLEtBQUssRUFBRTtnQkFDTCxzQkFBc0I7Z0JBQ3RCLHlCQUF5QjtnQkFDekIsNEJBQTRCO2dCQUM1Qix3QkFBd0I7Z0JBQ3hCLHFCQUFxQjtnQkFDckIseUJBQXlCO2FBQzFCO1NBQ0YsQ0FBQztJQXFERixDQUFDO0NBQ0Y7QUE3SUQsMEVBNklDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjZXNzTGV2ZWxMaXN0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2FjY2Vzcy1sZXZlbCc7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQsIE9wZXJhdG9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkJztcbmltcG9ydCB7IGF3c19pYW0gYXMgaWFtIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cbi8qKlxuICogU3RhdGVtZW50IHByb3ZpZGVyIGZvciBzZXJ2aWNlIFtwYXJ0bmVyY2VudHJhbC1hY2NvdW50LW1hbmFnZW1lbnRdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X3BhcnRuZXJjZW50cmFsLWFjY291bnQtbWFuYWdlbWVudC5odG1sKS5cbiAqXG4gKiBAcGFyYW0gc2lkIFtTSURdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfc2lkLmh0bWwpIG9mIHRoZSBzdGF0ZW1lbnRcbiAqL1xuZXhwb3J0IGNsYXNzIFBhcnRuZXJjZW50cmFsQWNjb3VudE1hbmFnZW1lbnQgZXh0ZW5kcyBQb2xpY3lTdGF0ZW1lbnQge1xuICBwdWJsaWMgc2VydmljZVByZWZpeCA9ICdwYXJ0bmVyY2VudHJhbC1hY2NvdW50LW1hbmFnZW1lbnQnO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBhc3NvY2lhdGUgUGFydG5lciB1c2VyIHRvIElBTSByb2xlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3BhcnRuZXItY2VudHJhbC9sYXRlc3QvZ2V0dGluZy1zdGFydGVkL2NvbnRyb2xsaW5nLWFjY2Vzcy1pbi1hcGMtYWNjb3VudC1tYW5hZ2VtZW50Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Fzc29jaWF0ZVBhcnRuZXJVc2VyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdBc3NvY2lhdGVQYXJ0bmVyVXNlcicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRpc2Fzc29jaWF0ZSBQYXJ0bmVyIHVzZXIgdG8gSUFNIHJvbGVcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vcGFydG5lci1jZW50cmFsL2xhdGVzdC9nZXR0aW5nLXN0YXJ0ZWQvY29udHJvbGxpbmctYWNjZXNzLWluLWFwYy1hY2NvdW50LW1hbmFnZW1lbnQuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGlzYXNzb2NpYXRlUGFydG5lclVzZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rpc2Fzc29jaWF0ZVBhcnRuZXJVc2VyJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gU2luZ2xlIFNpZ24tT24gZnJvbSBBV1MgUGFydG5lciBDZW50cmFsIGludG8gTGVnYWN5IFBhcnRuZXIgQ2VudHJhbFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmTGVnYWN5UGFydG5lckNlbnRyYWxSb2xlKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3BhcnRuZXItY2VudHJhbC9sYXRlc3QvZ2V0dGluZy1zdGFydGVkL2NvbnRyb2xsaW5nLWFjY2Vzcy1pbi1hcGMtYWNjb3VudC1tYW5hZ2VtZW50Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0FjY2Vzc0xlZ2FjeVBhcnRuZXJDZW50cmFsKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdBY2Nlc3NMZWdhY3lQYXJ0bmVyQ2VudHJhbCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIFNpbmdsZSBTaWduLU9uIGZyb20gQVdTIFBhcnRuZXIgQ2VudHJhbCBpbnRvIE1hcmtldGluZyBDZW50cmFsXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZNYXJrZXRpbmdDZW50cmFsUm9sZSgpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9wYXJ0bmVyLWNlbnRyYWwvbGF0ZXN0L2dldHRpbmctc3RhcnRlZC9jb250cm9sbGluZy1hY2Nlc3MtaW4tYXBjLWFjY291bnQtbWFuYWdlbWVudC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9BY2Nlc3NNYXJrZXRpbmdDZW50cmFsKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdBY2Nlc3NNYXJrZXRpbmdDZW50cmFsJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gU2luZ2xlIFNpZ24tT24gZnJvbSBBV1MgUGFydG5lciBDZW50cmFsIGludG8gUHJvU2VydmUgVG9vbHNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZlByb1NlcnZlUm9sZSgpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9wYXJ0bmVyLWNlbnRyYWwvbGF0ZXN0L2dldHRpbmctc3RhcnRlZC9jb250cm9sbGluZy1hY2Nlc3MtaW4tYXBjLWFjY291bnQtbWFuYWdlbWVudC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9BY2Nlc3NQcm9TZXJ2ZVRvb2xzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdBY2Nlc3NQcm9TZXJ2ZVRvb2xzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gYXNzb2NpYXRlIFBhcnRuZXIgYWNjb3VudCB0byBBV1MgYWNjb3VudFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9wYXJ0bmVyLWNlbnRyYWwvbGF0ZXN0L2dldHRpbmctc3RhcnRlZC9jb250cm9sbGluZy1hY2Nlc3MtaW4tYXBjLWFjY291bnQtbWFuYWdlbWVudC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9Bc3NvY2lhdGVQYXJ0bmVyQWNjb3VudCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQXNzb2NpYXRlUGFydG5lckFjY291bnQnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhY2Nlc3NMZXZlbExpc3Q6IEFjY2Vzc0xldmVsTGlzdCA9IHtcbiAgICBXcml0ZTogW1xuICAgICAgJ0Fzc29jaWF0ZVBhcnRuZXJVc2VyJyxcbiAgICAgICdEaXNhc3NvY2lhdGVQYXJ0bmVyVXNlcicsXG4gICAgICAnQWNjZXNzTGVnYWN5UGFydG5lckNlbnRyYWwnLFxuICAgICAgJ0FjY2Vzc01hcmtldGluZ0NlbnRyYWwnLFxuICAgICAgJ0FjY2Vzc1Byb1NlcnZlVG9vbHMnLFxuICAgICAgJ0Fzc29jaWF0ZVBhcnRuZXJBY2NvdW50J1xuICAgIF1cbiAgfTtcblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIExlZ2FjeSBQYXJ0bmVyIENlbnRyYWwgcm9sZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vcGFydG5lci1jZW50cmFsL2xhdGVzdC9nZXR0aW5nLXN0YXJ0ZWQvY29udHJvbGxpbmctYWNjZXNzLWluLWFwYy1hY2NvdW50LW1hbmFnZW1lbnQuaHRtbFxuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQWNjZXNzTGVnYWN5UGFydG5lckNlbnRyYWwoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkxlZ2FjeVBhcnRuZXJDZW50cmFsUm9sZSh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgTGVnYWN5UGFydG5lckNlbnRyYWxSb2xlYCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgTWFya2V0aW5nIENlbnRyYWwgcm9sZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vcGFydG5lci1jZW50cmFsL2xhdGVzdC9nZXR0aW5nLXN0YXJ0ZWQvY29udHJvbGxpbmctYWNjZXNzLWluLWFwYy1hY2NvdW50LW1hbmFnZW1lbnQuaHRtbFxuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQWNjZXNzTWFya2V0aW5nQ2VudHJhbCgpXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmTWFya2V0aW5nQ2VudHJhbFJvbGUodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYE1hcmtldGluZ0NlbnRyYWxSb2xlYCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgUHJvU2VydmUgVG9vbHMgcm9sZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vcGFydG5lci1jZW50cmFsL2xhdGVzdC9nZXR0aW5nLXN0YXJ0ZWQvY29udHJvbGxpbmctYWNjZXNzLWluLWFwYy1hY2NvdW50LW1hbmFnZW1lbnQuaHRtbFxuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQWNjZXNzUHJvU2VydmVUb29scygpXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmUHJvU2VydmVSb2xlKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGBQcm9TZXJ2ZVJvbGVgLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGF0ZW1lbnQgcHJvdmlkZXIgZm9yIHNlcnZpY2UgW3BhcnRuZXJjZW50cmFsLWFjY291bnQtbWFuYWdlbWVudF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfcGFydG5lcmNlbnRyYWwtYWNjb3VudC1tYW5hZ2VtZW50Lmh0bWwpLlxuICAgKlxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvcHM/OiBpYW0uUG9saWN5U3RhdGVtZW50UHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cbn1cbiJdfQ==