UNPKG

cdk-iam-floyd

Version:

AWS IAM policy statement generator with fluent interface for AWS CDK

221 lines 24.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AwsMarketplaceDiscovery = void 0; const shared_1 = require("../../shared"); /** * Statement provider for service [aws-marketplace-discovery](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsmarketplacediscovery.html). * * @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement */ class AwsMarketplaceDiscovery extends shared_1.PolicyStatement { /** * Grants permission to retrieve information about a listing * * Access Level: Read * * https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-discovery_GetListing.html */ toGetListing() { return this.to('GetListing'); } /** * Grants permission to retrieve information about an offer * * Access Level: Read * * https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-discovery_GetOffer.html */ toGetOffer() { return this.to('GetOffer'); } /** * Grants permission to retrieve information about an offer set * * Access Level: Read * * https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-discovery_GetOfferSet.html */ toGetOfferSet() { return this.to('GetOfferSet'); } /** * Grants permission to retrieve terms for an offer * * Access Level: Read * * https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-discovery_GetOfferTerms.html */ toGetOfferTerms() { return this.to('GetOfferTerms'); } /** * Grants permission to retrieve information about a product * * Access Level: Read * * https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-discovery_GetProduct.html */ toGetProduct() { return this.to('GetProduct'); } /** * Grants permission to list fulfillment options for a product * * Access Level: List * * https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-discovery_ListFulfillmentOptions.html */ toListFulfillmentOptions() { return this.to('ListFulfillmentOptions'); } /** * Grants permission to list private offers * * Access Level: List * * https://docs.aws.amazon.com/marketplace/latest/buyerguide/private-offers-page.html */ toListPrivateListings() { return this.to('ListPrivateListings'); } /** * Grants permission to list purchase options available to the buyer * * Access Level: List * * https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-discovery_ListPurchaseOptions.html */ toListPurchaseOptions() { return this.to('ListPurchaseOptions'); } /** * Grants permission to search for facet values to filter listings * * Access Level: List * * https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-discovery_SearchFacets.html */ toSearchFacets() { return this.to('SearchFacets'); } /** * Grants permission to search for product listings * * Access Level: List * * https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-discovery_SearchListings.html */ toSearchListings() { return this.to('SearchListings'); } /** * Adds a resource of type Product to the statement * * https://docs.aws.amazon.com/marketplace/latest/APIReference/discovery-apis.html#discovery-data-model * * @param catalogName - Identifier for the catalogName. * @param productId - Identifier for the productId. * @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. */ onProduct(catalogName, productId, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:aws-marketplace:::catalog/${catalogName}/product/${productId}`); } /** * Adds a resource of type Listing to the statement * * https://docs.aws.amazon.com/marketplace/latest/APIReference/discovery-apis.html#discovery-data-model * * @param catalogName - Identifier for the catalogName. * @param listingId - Identifier for the listingId. * @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. */ onListing(catalogName, listingId, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:aws-marketplace:::catalog/${catalogName}/listing/${listingId}`); } /** * Adds a resource of type AllListings to the statement * * https://docs.aws.amazon.com/marketplace/latest/APIReference/discovery-apis.html#discovery-data-model * * @param catalogName - Identifier for the catalogName. * @param resourceName - Identifier for the resourceName. * @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. */ onAllListings(catalogName, resourceName, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:aws-marketplace:::catalog/${catalogName}/listing/${resourceName}`); } /** * Adds a resource of type Offer to the statement * * https://docs.aws.amazon.com/marketplace/latest/APIReference/discovery-apis.html#discovery-data-model * * @param catalogName - Identifier for the catalogName. * @param offerId - Identifier for the offerId. * @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. */ onOffer(catalogName, offerId, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:aws-marketplace:::catalog/${catalogName}/offer/${offerId}`); } /** * Adds a resource of type OfferSet to the statement * * https://docs.aws.amazon.com/marketplace/latest/APIReference/discovery-apis.html#discovery-data-model * * @param catalogName - Identifier for the catalogName. * @param offerSetId - Identifier for the offerSetId. * @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. */ onOfferSet(catalogName, offerSetId, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:aws-marketplace:::catalog/${catalogName}/offerSet/${offerSetId}`); } /** * Adds a resource of type PurchaseOption to the statement * * https://docs.aws.amazon.com/marketplace/latest/APIReference/discovery-apis.html#discovery-data-model * * @param catalogName - Identifier for the catalogName. * @param purchaseOptionId - Identifier for the purchaseOptionId. * @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. */ onPurchaseOption(catalogName, purchaseOptionId, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:aws-marketplace:::catalog/${catalogName}/purchaseOption/${purchaseOptionId}`); } /** * Adds a resource of type AllPurchaseOptions to the statement * * https://docs.aws.amazon.com/marketplace/latest/APIReference/discovery-apis.html#discovery-data-model * * @param catalogName - Identifier for the catalogName. * @param resourceName - Identifier for the resourceName. * @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. */ onAllPurchaseOptions(catalogName, resourceName, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:aws-marketplace:::catalog/${catalogName}/purchaseOption/${resourceName}`); } /** * Statement provider for service [aws-marketplace-discovery](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsmarketplacediscovery.html). * */ constructor(props) { super(props); this.servicePrefix = 'aws-marketplace'; this.accessLevelList = { Read: [ 'GetListing', 'GetOffer', 'GetOfferSet', 'GetOfferTerms', 'GetProduct' ], List: [ 'ListFulfillmentOptions', 'ListPrivateListings', 'ListPurchaseOptions', 'SearchFacets', 'SearchListings' ] }; } } exports.AwsMarketplaceDiscovery = AwsMarketplaceDiscovery; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2V0cGxhY2VkaXNjb3ZlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXJrZXRwbGFjZWRpc2NvdmVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBK0M7QUFHL0M7Ozs7R0FJRztBQUNILE1BQWEsdUJBQXdCLFNBQVEsd0JBQWU7SUFHMUQ7Ozs7OztPQU1HO0lBQ0ksWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHdCQUF3QjtRQUM3QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0kscUJBQXFCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxxQkFBcUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbkMsQ0FBQztJQW1CRDs7Ozs7Ozs7T0FRRztJQUNJLFNBQVMsQ0FBQyxXQUFtQixFQUFFLFNBQWlCLEVBQUUsU0FBa0I7UUFDekUsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQVEsU0FBUyxJQUFJLElBQUksQ0FBQyxnQkFBaUIsOEJBQStCLFdBQVksWUFBYSxTQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ2xJLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLFNBQVMsQ0FBQyxXQUFtQixFQUFFLFNBQWlCLEVBQUUsU0FBa0I7UUFDekUsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQVEsU0FBUyxJQUFJLElBQUksQ0FBQyxnQkFBaUIsOEJBQStCLFdBQVksWUFBYSxTQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ2xJLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLGFBQWEsQ0FBQyxXQUFtQixFQUFFLFlBQW9CLEVBQUUsU0FBa0I7UUFDaEYsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQVEsU0FBUyxJQUFJLElBQUksQ0FBQyxnQkFBaUIsOEJBQStCLFdBQVksWUFBYSxZQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3JJLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLE9BQU8sQ0FBQyxXQUFtQixFQUFFLE9BQWUsRUFBRSxTQUFrQjtRQUNyRSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBUSxTQUFTLElBQUksSUFBSSxDQUFDLGdCQUFpQiw4QkFBK0IsV0FBWSxVQUFXLE9BQVEsRUFBRSxDQUFDLENBQUM7SUFDOUgsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksVUFBVSxDQUFDLFdBQW1CLEVBQUUsVUFBa0IsRUFBRSxTQUFrQjtRQUMzRSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBUSxTQUFTLElBQUksSUFBSSxDQUFDLGdCQUFpQiw4QkFBK0IsV0FBWSxhQUFjLFVBQVcsRUFBRSxDQUFDLENBQUM7SUFDcEksQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksZ0JBQWdCLENBQUMsV0FBbUIsRUFBRSxnQkFBd0IsRUFBRSxTQUFrQjtRQUN2RixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBUSxTQUFTLElBQUksSUFBSSxDQUFDLGdCQUFpQiw4QkFBK0IsV0FBWSxtQkFBb0IsZ0JBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQ2hKLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLG9CQUFvQixDQUFDLFdBQW1CLEVBQUUsWUFBb0IsRUFBRSxTQUFrQjtRQUN2RixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBUSxTQUFTLElBQUksSUFBSSxDQUFDLGdCQUFpQiw4QkFBK0IsV0FBWSxtQkFBb0IsWUFBYSxFQUFFLENBQUMsQ0FBQztJQUM1SSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWSxLQUFnQztRQUMxQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFqT1Isa0JBQWEsR0FBRyxpQkFBaUIsQ0FBQztRQWdIL0Isb0JBQWUsR0FBb0I7WUFDM0MsSUFBSSxFQUFFO2dCQUNKLFlBQVk7Z0JBQ1osVUFBVTtnQkFDVixhQUFhO2dCQUNiLGVBQWU7Z0JBQ2YsWUFBWTthQUNiO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLHdCQUF3QjtnQkFDeEIscUJBQXFCO2dCQUNyQixxQkFBcUI7Z0JBQ3JCLGNBQWM7Z0JBQ2QsZ0JBQWdCO2FBQ2pCO1NBQ0YsQ0FBQztJQW1HRixDQUFDO0NBQ0Y7QUFwT0QsMERBb09DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjZXNzTGV2ZWxMaXN0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2FjY2Vzcy1sZXZlbCc7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuaW1wb3J0IHsgYXdzX2lhbSBhcyBpYW0gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuLyoqXG4gKiBTdGF0ZW1lbnQgcHJvdmlkZXIgZm9yIHNlcnZpY2UgW2F3cy1tYXJrZXRwbGFjZS1kaXNjb3ZlcnldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2F3c21hcmtldHBsYWNlZGlzY292ZXJ5Lmh0bWwpLlxuICpcbiAqIEBwYXJhbSBzaWQgW1NJRF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19zaWQuaHRtbCkgb2YgdGhlIHN0YXRlbWVudFxuICovXG5leHBvcnQgY2xhc3MgQXdzTWFya2V0cGxhY2VEaXNjb3ZlcnkgZXh0ZW5kcyBQb2xpY3lTdGF0ZW1lbnQge1xuICBwdWJsaWMgc2VydmljZVByZWZpeCA9ICdhd3MtbWFya2V0cGxhY2UnO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSBpbmZvcm1hdGlvbiBhYm91dCBhIGxpc3RpbmdcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9tYXJrZXRwbGFjZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9tYXJrZXRwbGFjZS1kaXNjb3ZlcnlfR2V0TGlzdGluZy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9HZXRMaXN0aW5nKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRMaXN0aW5nJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0cmlldmUgaW5mb3JtYXRpb24gYWJvdXQgYW4gb2ZmZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9tYXJrZXRwbGFjZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9tYXJrZXRwbGFjZS1kaXNjb3ZlcnlfR2V0T2ZmZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0T2ZmZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldE9mZmVyJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0cmlldmUgaW5mb3JtYXRpb24gYWJvdXQgYW4gb2ZmZXIgc2V0XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbWFya2V0cGxhY2UvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfbWFya2V0cGxhY2UtZGlzY292ZXJ5X0dldE9mZmVyU2V0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldE9mZmVyU2V0KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRPZmZlclNldCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHJpZXZlIHRlcm1zIGZvciBhbiBvZmZlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL21hcmtldHBsYWNlL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX21hcmtldHBsYWNlLWRpc2NvdmVyeV9HZXRPZmZlclRlcm1zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldE9mZmVyVGVybXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldE9mZmVyVGVybXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSBpbmZvcm1hdGlvbiBhYm91dCBhIHByb2R1Y3RcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9tYXJrZXRwbGFjZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9tYXJrZXRwbGFjZS1kaXNjb3ZlcnlfR2V0UHJvZHVjdC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9HZXRQcm9kdWN0KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRQcm9kdWN0Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBmdWxmaWxsbWVudCBvcHRpb25zIGZvciBhIHByb2R1Y3RcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9tYXJrZXRwbGFjZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9tYXJrZXRwbGFjZS1kaXNjb3ZlcnlfTGlzdEZ1bGZpbGxtZW50T3B0aW9ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0RnVsZmlsbG1lbnRPcHRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0RnVsZmlsbG1lbnRPcHRpb25zJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBwcml2YXRlIG9mZmVyc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL21hcmtldHBsYWNlL2xhdGVzdC9idXllcmd1aWRlL3ByaXZhdGUtb2ZmZXJzLXBhZ2UuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdFByaXZhdGVMaXN0aW5ncygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdFByaXZhdGVMaXN0aW5ncycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgcHVyY2hhc2Ugb3B0aW9ucyBhdmFpbGFibGUgdG8gdGhlIGJ1eWVyXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbWFya2V0cGxhY2UvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfbWFya2V0cGxhY2UtZGlzY292ZXJ5X0xpc3RQdXJjaGFzZU9wdGlvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdFB1cmNoYXNlT3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdFB1cmNoYXNlT3B0aW9ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHNlYXJjaCBmb3IgZmFjZXQgdmFsdWVzIHRvIGZpbHRlciBsaXN0aW5nc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL21hcmtldHBsYWNlL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX21hcmtldHBsYWNlLWRpc2NvdmVyeV9TZWFyY2hGYWNldHMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvU2VhcmNoRmFjZXRzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdTZWFyY2hGYWNldHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzZWFyY2ggZm9yIHByb2R1Y3QgbGlzdGluZ3NcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9tYXJrZXRwbGFjZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9tYXJrZXRwbGFjZS1kaXNjb3ZlcnlfU2VhcmNoTGlzdGluZ3MuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvU2VhcmNoTGlzdGluZ3MoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1NlYXJjaExpc3RpbmdzJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWNjZXNzTGV2ZWxMaXN0OiBBY2Nlc3NMZXZlbExpc3QgPSB7XG4gICAgUmVhZDogW1xuICAgICAgJ0dldExpc3RpbmcnLFxuICAgICAgJ0dldE9mZmVyJyxcbiAgICAgICdHZXRPZmZlclNldCcsXG4gICAgICAnR2V0T2ZmZXJUZXJtcycsXG4gICAgICAnR2V0UHJvZHVjdCdcbiAgICBdLFxuICAgIExpc3Q6IFtcbiAgICAgICdMaXN0RnVsZmlsbG1lbnRPcHRpb25zJyxcbiAgICAgICdMaXN0UHJpdmF0ZUxpc3RpbmdzJyxcbiAgICAgICdMaXN0UHVyY2hhc2VPcHRpb25zJyxcbiAgICAgICdTZWFyY2hGYWNldHMnLFxuICAgICAgJ1NlYXJjaExpc3RpbmdzJ1xuICAgIF1cbiAgfTtcblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgUHJvZHVjdCB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9tYXJrZXRwbGFjZS9sYXRlc3QvQVBJUmVmZXJlbmNlL2Rpc2NvdmVyeS1hcGlzLmh0bWwjZGlzY292ZXJ5LWRhdGEtbW9kZWxcbiAgICpcbiAgICogQHBhcmFtIGNhdGFsb2dOYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIGNhdGFsb2dOYW1lLlxuICAgKiBAcGFyYW0gcHJvZHVjdElkIC0gSWRlbnRpZmllciBmb3IgdGhlIHByb2R1Y3RJZC5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICovXG4gIHB1YmxpYyBvblByb2R1Y3QoY2F0YWxvZ05hbWU6IHN0cmluZywgcHJvZHVjdElkOiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmF3cy1tYXJrZXRwbGFjZTo6OmNhdGFsb2cvJHsgY2F0YWxvZ05hbWUgfS9wcm9kdWN0LyR7IHByb2R1Y3RJZCB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgTGlzdGluZyB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9tYXJrZXRwbGFjZS9sYXRlc3QvQVBJUmVmZXJlbmNlL2Rpc2NvdmVyeS1hcGlzLmh0bWwjZGlzY292ZXJ5LWRhdGEtbW9kZWxcbiAgICpcbiAgICogQHBhcmFtIGNhdGFsb2dOYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIGNhdGFsb2dOYW1lLlxuICAgKiBAcGFyYW0gbGlzdGluZ0lkIC0gSWRlbnRpZmllciBmb3IgdGhlIGxpc3RpbmdJZC5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICovXG4gIHB1YmxpYyBvbkxpc3RpbmcoY2F0YWxvZ05hbWU6IHN0cmluZywgbGlzdGluZ0lkOiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmF3cy1tYXJrZXRwbGFjZTo6OmNhdGFsb2cvJHsgY2F0YWxvZ05hbWUgfS9saXN0aW5nLyR7IGxpc3RpbmdJZCB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgQWxsTGlzdGluZ3MgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbWFya2V0cGxhY2UvbGF0ZXN0L0FQSVJlZmVyZW5jZS9kaXNjb3ZlcnktYXBpcy5odG1sI2Rpc2NvdmVyeS1kYXRhLW1vZGVsXG4gICAqXG4gICAqIEBwYXJhbSBjYXRhbG9nTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSBjYXRhbG9nTmFtZS5cbiAgICogQHBhcmFtIHJlc291cmNlTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZU5hbWUuXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqL1xuICBwdWJsaWMgb25BbGxMaXN0aW5ncyhjYXRhbG9nTmFtZTogc3RyaW5nLCByZXNvdXJjZU5hbWU6IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06YXdzLW1hcmtldHBsYWNlOjo6Y2F0YWxvZy8keyBjYXRhbG9nTmFtZSB9L2xpc3RpbmcvJHsgcmVzb3VyY2VOYW1lIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBPZmZlciB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9tYXJrZXRwbGFjZS9sYXRlc3QvQVBJUmVmZXJlbmNlL2Rpc2NvdmVyeS1hcGlzLmh0bWwjZGlzY292ZXJ5LWRhdGEtbW9kZWxcbiAgICpcbiAgICogQHBhcmFtIGNhdGFsb2dOYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIGNhdGFsb2dOYW1lLlxuICAgKiBAcGFyYW0gb2ZmZXJJZCAtIElkZW50aWZpZXIgZm9yIHRoZSBvZmZlcklkLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKi9cbiAgcHVibGljIG9uT2ZmZXIoY2F0YWxvZ05hbWU6IHN0cmluZywgb2ZmZXJJZDogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTphd3MtbWFya2V0cGxhY2U6OjpjYXRhbG9nLyR7IGNhdGFsb2dOYW1lIH0vb2ZmZXIvJHsgb2ZmZXJJZCB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgT2ZmZXJTZXQgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbWFya2V0cGxhY2UvbGF0ZXN0L0FQSVJlZmVyZW5jZS9kaXNjb3ZlcnktYXBpcy5odG1sI2Rpc2NvdmVyeS1kYXRhLW1vZGVsXG4gICAqXG4gICAqIEBwYXJhbSBjYXRhbG9nTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSBjYXRhbG9nTmFtZS5cbiAgICogQHBhcmFtIG9mZmVyU2V0SWQgLSBJZGVudGlmaWVyIGZvciB0aGUgb2ZmZXJTZXRJZC5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICovXG4gIHB1YmxpYyBvbk9mZmVyU2V0KGNhdGFsb2dOYW1lOiBzdHJpbmcsIG9mZmVyU2V0SWQ6IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06YXdzLW1hcmtldHBsYWNlOjo6Y2F0YWxvZy8keyBjYXRhbG9nTmFtZSB9L29mZmVyU2V0LyR7IG9mZmVyU2V0SWQgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIFB1cmNoYXNlT3B0aW9uIHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL21hcmtldHBsYWNlL2xhdGVzdC9BUElSZWZlcmVuY2UvZGlzY292ZXJ5LWFwaXMuaHRtbCNkaXNjb3ZlcnktZGF0YS1tb2RlbFxuICAgKlxuICAgKiBAcGFyYW0gY2F0YWxvZ05hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgY2F0YWxvZ05hbWUuXG4gICAqIEBwYXJhbSBwdXJjaGFzZU9wdGlvbklkIC0gSWRlbnRpZmllciBmb3IgdGhlIHB1cmNoYXNlT3B0aW9uSWQuXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqL1xuICBwdWJsaWMgb25QdXJjaGFzZU9wdGlvbihjYXRhbG9nTmFtZTogc3RyaW5nLCBwdXJjaGFzZU9wdGlvbklkOiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmF3cy1tYXJrZXRwbGFjZTo6OmNhdGFsb2cvJHsgY2F0YWxvZ05hbWUgfS9wdXJjaGFzZU9wdGlvbi8keyBwdXJjaGFzZU9wdGlvbklkIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBBbGxQdXJjaGFzZU9wdGlvbnMgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbWFya2V0cGxhY2UvbGF0ZXN0L0FQSVJlZmVyZW5jZS9kaXNjb3ZlcnktYXBpcy5odG1sI2Rpc2NvdmVyeS1kYXRhLW1vZGVsXG4gICAqXG4gICAqIEBwYXJhbSBjYXRhbG9nTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSBjYXRhbG9nTmFtZS5cbiAgICogQHBhcmFtIHJlc291cmNlTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZU5hbWUuXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqL1xuICBwdWJsaWMgb25BbGxQdXJjaGFzZU9wdGlvbnMoY2F0YWxvZ05hbWU6IHN0cmluZywgcmVzb3VyY2VOYW1lOiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmF3cy1tYXJrZXRwbGFjZTo6OmNhdGFsb2cvJHsgY2F0YWxvZ05hbWUgfS9wdXJjaGFzZU9wdGlvbi8keyByZXNvdXJjZU5hbWUgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXRlbWVudCBwcm92aWRlciBmb3Igc2VydmljZSBbYXdzLW1hcmtldHBsYWNlLWRpc2NvdmVyeV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfYXdzbWFya2V0cGxhY2VkaXNjb3ZlcnkuaHRtbCkuXG4gICAqXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wcz86IGlhbS5Qb2xpY3lTdGF0ZW1lbnRQcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxufVxuIl19