UNPKG

cdk-iam-floyd

Version:

AWS IAM policy statement generator with fluent interface for AWS CDK

305 lines 28.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Verifiedpermissions = void 0; const shared_1 = require("../../shared"); /** * Statement provider for service [verifiedpermissions](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonverifiedpermissions.html). * * @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement */ class Verifiedpermissions extends shared_1.PolicyStatement { /** * Grants permission to create a reference to an external identity provider (IdP) that is compatible with OpenID Connect (OIDC) authentication protocol, such as Amazon Cognito * * Access Level: Write * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreateIdentitySource.html */ toCreateIdentitySource() { return this.to('CreateIdentitySource'); } /** * Grants permission to create a Cedar policy and save it in the specified policy store * * Access Level: Write * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreatePolicy.html */ toCreatePolicy() { return this.to('CreatePolicy'); } /** * Grants permission to create a Cedar policy and save it in the specified policy store * * Access Level: Write * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreatePolicyStore.html */ toCreatePolicyStore() { return this.to('CreatePolicyStore'); } /** * Grants permission to create a policy template * * Access Level: Write * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreatePolicyTemplate.html */ toCreatePolicyTemplate() { return this.to('CreatePolicyTemplate'); } /** * Grants permission to delete an identity source that references an identity provider (IdP) such as Amazon Cognito * * Access Level: Write * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_DeleteIdentitySource.html */ toDeleteIdentitySource() { return this.to('DeleteIdentitySource'); } /** * Grants permission to delete the specified policy from the policy store * * Access Level: Write * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_DeletePolicy.html */ toDeletePolicy() { return this.to('DeletePolicy'); } /** * Grants permission to delete the specified policy store * * Access Level: Write * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_DeletePolicyStore.html */ toDeletePolicyStore() { return this.to('DeletePolicyStore'); } /** * Grants permission to delete the specified policy template from the policy store * * Access Level: Write * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_DeletePolicyTemplate.html */ toDeletePolicyTemplate() { return this.to('DeletePolicyTemplate'); } /** * Grants permission to retrieve the details about the specified identity source * * Access Level: Read * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_GetIdentitySource.html */ toGetIdentitySource() { return this.to('GetIdentitySource'); } /** * Grants permission to retrieve information about the specified policy * * Access Level: Read * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_GetPolicy.html */ toGetPolicy() { return this.to('GetPolicy'); } /** * Grants permission to retrieve details about a policy store * * Access Level: Read * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_GetPolicyStore.html */ toGetPolicyStore() { return this.to('GetPolicyStore'); } /** * Grants permission to retrieve the details for the specified policy template in the specified policy store * * Access Level: Read * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_GetPolicyTemplate.html */ toGetPolicyTemplate() { return this.to('GetPolicyTemplate'); } /** * Grants permission to retrieve the details for the specified schema in the specified policy store * * Access Level: Read * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_GetSchema.html */ toGetSchema() { return this.to('GetSchema'); } /** * Grants permission to make an authorization decision about a service request described in the parameters * * Access Level: Read * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html */ toIsAuthorized() { return this.to('IsAuthorized'); } /** * Grants permission to make an authorization decision about a service request described in the parameters. The principal in this request comes from an external identity source * * Access Level: Read * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorizedWithToken.html */ toIsAuthorizedWithToken() { return this.to('IsAuthorizedWithToken'); } /** * Grants permission to return a paginated list of all of the identity sources defined in the specified policy store * * Access Level: List * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_ListIdentitySources.html */ toListIdentitySources() { return this.to('ListIdentitySources'); } /** * Grants permission to return a paginated list of all policies stored in the specified policy store * * Access Level: List * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_ListPolicies.html */ toListPolicies() { return this.to('ListPolicies'); } /** * Grants permission to return a paginated list of all policy stores in the calling Amazon Web Services account * * Access Level: List * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_ListPolicyStores.html */ toListPolicyStores() { return this.to('ListPolicyStores'); } /** * Grants permission to return a paginated list of all policy templates in the specified policy store * * Access Level: List * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_ListPolicyTemplates.html */ toListPolicyTemplates() { return this.to('ListPolicyTemplates'); } /** * Grants permission to create or update the policy schema in the specified policy store * * Access Level: Write * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_PutSchema.html */ toPutSchema() { return this.to('PutSchema'); } /** * Grants permission to update the specified identity source to use a new identity provider (IdP) source, or to change the mapping of identities from the IdP to a different principal entity type * * Access Level: Write * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_UpdateIdentitySource.html */ toUpdateIdentitySource() { return this.to('UpdateIdentitySource'); } /** * Grants permission to modify the specified Cedar static policy in the specified policy store * * Access Level: Write * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_UpdatePolicy.html */ toUpdatePolicy() { return this.to('UpdatePolicy'); } /** * Grants permission to modify the validation setting for a policy store * * Access Level: Write * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_UpdatePolicyStore.html */ toUpdatePolicyStore() { return this.to('UpdatePolicyStore'); } /** * Grants permission to update the specified policy template * * Access Level: Write * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_UpdatePolicyTemplate.html */ toUpdatePolicyTemplate() { return this.to('UpdatePolicyTemplate'); } /** * Adds a resource of type policy-store to the statement * * https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/policy-stores.html * * @param policyStoreId - Identifier for the policyStoreId. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @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. */ onPolicyStore(policyStoreId, account, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:verifiedpermissions::${account ?? this.defaultAccount}:policy-store/${policyStoreId}`); } /** * Statement provider for service [verifiedpermissions](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonverifiedpermissions.html). * */ constructor(props) { super(props); this.servicePrefix = 'verifiedpermissions'; this.accessLevelList = { Write: [ 'CreateIdentitySource', 'CreatePolicy', 'CreatePolicyStore', 'CreatePolicyTemplate', 'DeleteIdentitySource', 'DeletePolicy', 'DeletePolicyStore', 'DeletePolicyTemplate', 'PutSchema', 'UpdateIdentitySource', 'UpdatePolicy', 'UpdatePolicyStore', 'UpdatePolicyTemplate' ], Read: [ 'GetIdentitySource', 'GetPolicy', 'GetPolicyStore', 'GetPolicyTemplate', 'GetSchema', 'IsAuthorized', 'IsAuthorizedWithToken' ], List: [ 'ListIdentitySources', 'ListPolicies', 'ListPolicyStores', 'ListPolicyTemplates' ] }; } } exports.Verifiedpermissions = Verifiedpermissions; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpZWRwZXJtaXNzaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZlcmlmaWVkcGVybWlzc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQStDO0FBRy9DOzs7O0dBSUc7QUFDSCxNQUFhLG1CQUFvQixTQUFRLHdCQUFlO0lBR3REOzs7Ozs7T0FNRztJQUNJLHNCQUFzQjtRQUMzQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksY0FBYztRQUNuQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLG1CQUFtQjtRQUN4QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksc0JBQXNCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxzQkFBc0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxtQkFBbUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHNCQUFzQjtRQUMzQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksbUJBQW1CO1FBQ3hCLE9BQU8sSUFB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dkI7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osbUJBQW1CO2dCQUNuQixXQUFXO2dCQUNYLGdCQUFnQjtnQkFDaEIsbUJBQW1CO2dCQUNuQixXQUFXO2dCQUNYLGNBQWM7Z0JBQ2QsdUJBQXVCO2FBQ3hCO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLHFCQUFxQjtnQkFDckIsY0FBYztnQkFDZCxrQkFBa0I7Z0JBQ2xCLHFCQUFxQjthQUN0QjtTQUNGLENBQUM7SUFxQkYsQ0FBQztDQUNGO0FBaFVELGtEQWdVQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY2Vzc0xldmVsTGlzdCB9IGZyb20gJy4uLy4uL3NoYXJlZC9hY2Nlc3MtbGV2ZWwnO1xuaW1wb3J0IHsgUG9saWN5U3RhdGVtZW50IH0gZnJvbSAnLi4vLi4vc2hhcmVkJztcbmltcG9ydCB7IGF3c19pYW0gYXMgaWFtIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cbi8qKlxuICogU3RhdGVtZW50IHByb3ZpZGVyIGZvciBzZXJ2aWNlIFt2ZXJpZmllZHBlcm1pc3Npb25zXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hbWF6b252ZXJpZmllZHBlcm1pc3Npb25zLmh0bWwpLlxuICpcbiAqIEBwYXJhbSBzaWQgW1NJRF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19zaWQuaHRtbCkgb2YgdGhlIHN0YXRlbWVudFxuICovXG5leHBvcnQgY2xhc3MgVmVyaWZpZWRwZXJtaXNzaW9ucyBleHRlbmRzIFBvbGljeVN0YXRlbWVudCB7XG4gIHB1YmxpYyBzZXJ2aWNlUHJlZml4ID0gJ3ZlcmlmaWVkcGVybWlzc2lvbnMnO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSByZWZlcmVuY2UgdG8gYW4gZXh0ZXJuYWwgaWRlbnRpdHkgcHJvdmlkZXIgKElkUCkgdGhhdCBpcyBjb21wYXRpYmxlIHdpdGggT3BlbklEIENvbm5lY3QgKE9JREMpIGF1dGhlbnRpY2F0aW9uIHByb3RvY29sLCBzdWNoIGFzIEFtYXpvbiBDb2duaXRvXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3ZlcmlmaWVkcGVybWlzc2lvbnMvbGF0ZXN0L2FwaXJlZmVyZW5jZS9BUElfQ3JlYXRlSWRlbnRpdHlTb3VyY2UuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlSWRlbnRpdHlTb3VyY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUlkZW50aXR5U291cmNlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGEgQ2VkYXIgcG9saWN5IGFuZCBzYXZlIGl0IGluIHRoZSBzcGVjaWZpZWQgcG9saWN5IHN0b3JlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3ZlcmlmaWVkcGVybWlzc2lvbnMvbGF0ZXN0L2FwaXJlZmVyZW5jZS9BUElfQ3JlYXRlUG9saWN5Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZVBvbGljeSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlUG9saWN5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGEgQ2VkYXIgcG9saWN5IGFuZCBzYXZlIGl0IGluIHRoZSBzcGVjaWZpZWQgcG9saWN5IHN0b3JlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3ZlcmlmaWVkcGVybWlzc2lvbnMvbGF0ZXN0L2FwaXJlZmVyZW5jZS9BUElfQ3JlYXRlUG9saWN5U3RvcmUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlUG9saWN5U3RvcmUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZVBvbGljeVN0b3JlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGEgcG9saWN5IHRlbXBsYXRlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3ZlcmlmaWVkcGVybWlzc2lvbnMvbGF0ZXN0L2FwaXJlZmVyZW5jZS9BUElfQ3JlYXRlUG9saWN5VGVtcGxhdGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlUG9saWN5VGVtcGxhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZVBvbGljeVRlbXBsYXRlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGFuIGlkZW50aXR5IHNvdXJjZSB0aGF0IHJlZmVyZW5jZXMgYW4gaWRlbnRpdHkgcHJvdmlkZXIgKElkUCkgc3VjaCBhcyBBbWF6b24gQ29nbml0b1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92ZXJpZmllZHBlcm1pc3Npb25zL2xhdGVzdC9hcGlyZWZlcmVuY2UvQVBJX0RlbGV0ZUlkZW50aXR5U291cmNlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZUlkZW50aXR5U291cmNlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVJZGVudGl0eVNvdXJjZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSB0aGUgc3BlY2lmaWVkIHBvbGljeSBmcm9tIHRoZSBwb2xpY3kgc3RvcmVcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vdmVyaWZpZWRwZXJtaXNzaW9ucy9sYXRlc3QvYXBpcmVmZXJlbmNlL0FQSV9EZWxldGVQb2xpY3kuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlUG9saWN5KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVQb2xpY3knKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgdGhlIHNwZWNpZmllZCBwb2xpY3kgc3RvcmVcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vdmVyaWZpZWRwZXJtaXNzaW9ucy9sYXRlc3QvYXBpcmVmZXJlbmNlL0FQSV9EZWxldGVQb2xpY3lTdG9yZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVQb2xpY3lTdG9yZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlUG9saWN5U3RvcmUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgdGhlIHNwZWNpZmllZCBwb2xpY3kgdGVtcGxhdGUgZnJvbSB0aGUgcG9saWN5IHN0b3JlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3ZlcmlmaWVkcGVybWlzc2lvbnMvbGF0ZXN0L2FwaXJlZmVyZW5jZS9BUElfRGVsZXRlUG9saWN5VGVtcGxhdGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlUG9saWN5VGVtcGxhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZVBvbGljeVRlbXBsYXRlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0cmlldmUgdGhlIGRldGFpbHMgYWJvdXQgdGhlIHNwZWNpZmllZCBpZGVudGl0eSBzb3VyY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92ZXJpZmllZHBlcm1pc3Npb25zL2xhdGVzdC9hcGlyZWZlcmVuY2UvQVBJX0dldElkZW50aXR5U291cmNlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldElkZW50aXR5U291cmNlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRJZGVudGl0eVNvdXJjZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHJpZXZlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzcGVjaWZpZWQgcG9saWN5XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vdmVyaWZpZWRwZXJtaXNzaW9ucy9sYXRlc3QvYXBpcmVmZXJlbmNlL0FQSV9HZXRQb2xpY3kuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0UG9saWN5KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRQb2xpY3knKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSBkZXRhaWxzIGFib3V0IGEgcG9saWN5IHN0b3JlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vdmVyaWZpZWRwZXJtaXNzaW9ucy9sYXRlc3QvYXBpcmVmZXJlbmNlL0FQSV9HZXRQb2xpY3lTdG9yZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9HZXRQb2xpY3lTdG9yZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0UG9saWN5U3RvcmUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSB0aGUgZGV0YWlscyBmb3IgdGhlIHNwZWNpZmllZCBwb2xpY3kgdGVtcGxhdGUgaW4gdGhlIHNwZWNpZmllZCBwb2xpY3kgc3RvcmVcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92ZXJpZmllZHBlcm1pc3Npb25zL2xhdGVzdC9hcGlyZWZlcmVuY2UvQVBJX0dldFBvbGljeVRlbXBsYXRlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldFBvbGljeVRlbXBsYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRQb2xpY3lUZW1wbGF0ZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHJpZXZlIHRoZSBkZXRhaWxzIGZvciB0aGUgc3BlY2lmaWVkIHNjaGVtYSBpbiB0aGUgc3BlY2lmaWVkIHBvbGljeSBzdG9yZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3ZlcmlmaWVkcGVybWlzc2lvbnMvbGF0ZXN0L2FwaXJlZmVyZW5jZS9BUElfR2V0U2NoZW1hLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldFNjaGVtYSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0U2NoZW1hJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbWFrZSBhbiBhdXRob3JpemF0aW9uIGRlY2lzaW9uIGFib3V0IGEgc2VydmljZSByZXF1ZXN0IGRlc2NyaWJlZCBpbiB0aGUgcGFyYW1ldGVyc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3ZlcmlmaWVkcGVybWlzc2lvbnMvbGF0ZXN0L2FwaXJlZmVyZW5jZS9BUElfSXNBdXRob3JpemVkLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0lzQXV0aG9yaXplZCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnSXNBdXRob3JpemVkJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbWFrZSBhbiBhdXRob3JpemF0aW9uIGRlY2lzaW9uIGFib3V0IGEgc2VydmljZSByZXF1ZXN0IGRlc2NyaWJlZCBpbiB0aGUgcGFyYW1ldGVycy4gVGhlIHByaW5jaXBhbCBpbiB0aGlzIHJlcXVlc3QgY29tZXMgZnJvbSBhbiBleHRlcm5hbCBpZGVudGl0eSBzb3VyY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92ZXJpZmllZHBlcm1pc3Npb25zL2xhdGVzdC9hcGlyZWZlcmVuY2UvQVBJX0lzQXV0aG9yaXplZFdpdGhUb2tlbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9Jc0F1dGhvcml6ZWRXaXRoVG9rZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0lzQXV0aG9yaXplZFdpdGhUb2tlbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHVybiBhIHBhZ2luYXRlZCBsaXN0IG9mIGFsbCBvZiB0aGUgaWRlbnRpdHkgc291cmNlcyBkZWZpbmVkIGluIHRoZSBzcGVjaWZpZWQgcG9saWN5IHN0b3JlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vdmVyaWZpZWRwZXJtaXNzaW9ucy9sYXRlc3QvYXBpcmVmZXJlbmNlL0FQSV9MaXN0SWRlbnRpdHlTb3VyY2VzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RJZGVudGl0eVNvdXJjZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RJZGVudGl0eVNvdXJjZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gYSBwYWdpbmF0ZWQgbGlzdCBvZiBhbGwgcG9saWNpZXMgc3RvcmVkIGluIHRoZSBzcGVjaWZpZWQgcG9saWN5IHN0b3JlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vdmVyaWZpZWRwZXJtaXNzaW9ucy9sYXRlc3QvYXBpcmVmZXJlbmNlL0FQSV9MaXN0UG9saWNpZXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdFBvbGljaWVzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0UG9saWNpZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXR1cm4gYSBwYWdpbmF0ZWQgbGlzdCBvZiBhbGwgcG9saWN5IHN0b3JlcyBpbiB0aGUgY2FsbGluZyBBbWF6b24gV2ViIFNlcnZpY2VzIGFjY291bnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92ZXJpZmllZHBlcm1pc3Npb25zL2xhdGVzdC9hcGlyZWZlcmVuY2UvQVBJX0xpc3RQb2xpY3lTdG9yZXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdFBvbGljeVN0b3JlcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdFBvbGljeVN0b3JlcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHVybiBhIHBhZ2luYXRlZCBsaXN0IG9mIGFsbCBwb2xpY3kgdGVtcGxhdGVzIGluIHRoZSBzcGVjaWZpZWQgcG9saWN5IHN0b3JlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vdmVyaWZpZWRwZXJtaXNzaW9ucy9sYXRlc3QvYXBpcmVmZXJlbmNlL0FQSV9MaXN0UG9saWN5VGVtcGxhdGVzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RQb2xpY3lUZW1wbGF0ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RQb2xpY3lUZW1wbGF0ZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgb3IgdXBkYXRlIHRoZSBwb2xpY3kgc2NoZW1hIGluIHRoZSBzcGVjaWZpZWQgcG9saWN5IHN0b3JlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3ZlcmlmaWVkcGVybWlzc2lvbnMvbGF0ZXN0L2FwaXJlZmVyZW5jZS9BUElfUHV0U2NoZW1hLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1B1dFNjaGVtYSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnUHV0U2NoZW1hJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIHRoZSBzcGVjaWZpZWQgaWRlbnRpdHkgc291cmNlIHRvIHVzZSBhIG5ldyBpZGVudGl0eSBwcm92aWRlciAoSWRQKSBzb3VyY2UsIG9yIHRvIGNoYW5nZSB0aGUgbWFwcGluZyBvZiBpZGVudGl0aWVzIGZyb20gdGhlIElkUCB0byBhIGRpZmZlcmVudCBwcmluY2lwYWwgZW50aXR5IHR5cGVcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vdmVyaWZpZWRwZXJtaXNzaW9ucy9sYXRlc3QvYXBpcmVmZXJlbmNlL0FQSV9VcGRhdGVJZGVudGl0eVNvdXJjZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVJZGVudGl0eVNvdXJjZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlSWRlbnRpdHlTb3VyY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBtb2RpZnkgdGhlIHNwZWNpZmllZCBDZWRhciBzdGF0aWMgcG9saWN5IGluIHRoZSBzcGVjaWZpZWQgcG9saWN5IHN0b3JlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3ZlcmlmaWVkcGVybWlzc2lvbnMvbGF0ZXN0L2FwaXJlZmVyZW5jZS9BUElfVXBkYXRlUG9saWN5Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZVBvbGljeSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlUG9saWN5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbW9kaWZ5IHRoZSB2YWxpZGF0aW9uIHNldHRpbmcgZm9yIGEgcG9saWN5IHN0b3JlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3ZlcmlmaWVkcGVybWlzc2lvbnMvbGF0ZXN0L2FwaXJlZmVyZW5jZS9BUElfVXBkYXRlUG9saWN5U3RvcmUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVXBkYXRlUG9saWN5U3RvcmUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZVBvbGljeVN0b3JlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIHRoZSBzcGVjaWZpZWQgcG9saWN5IHRlbXBsYXRlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3ZlcmlmaWVkcGVybWlzc2lvbnMvbGF0ZXN0L2FwaXJlZmVyZW5jZS9BUElfVXBkYXRlUG9saWN5VGVtcGxhdGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVXBkYXRlUG9saWN5VGVtcGxhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZVBvbGljeVRlbXBsYXRlJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWNjZXNzTGV2ZWxMaXN0OiBBY2Nlc3NMZXZlbExpc3QgPSB7XG4gICAgV3JpdGU6IFtcbiAgICAgICdDcmVhdGVJZGVudGl0eVNvdXJjZScsXG4gICAgICAnQ3JlYXRlUG9saWN5JyxcbiAgICAgICdDcmVhdGVQb2xpY3lTdG9yZScsXG4gICAgICAnQ3JlYXRlUG9saWN5VGVtcGxhdGUnLFxuICAgICAgJ0RlbGV0ZUlkZW50aXR5U291cmNlJyxcbiAgICAgICdEZWxldGVQb2xpY3knLFxuICAgICAgJ0RlbGV0ZVBvbGljeVN0b3JlJyxcbiAgICAgICdEZWxldGVQb2xpY3lUZW1wbGF0ZScsXG4gICAgICAnUHV0U2NoZW1hJyxcbiAgICAgICdVcGRhdGVJZGVudGl0eVNvdXJjZScsXG4gICAgICAnVXBkYXRlUG9saWN5JyxcbiAgICAgICdVcGRhdGVQb2xpY3lTdG9yZScsXG4gICAgICAnVXBkYXRlUG9saWN5VGVtcGxhdGUnXG4gICAgXSxcbiAgICBSZWFkOiBbXG4gICAgICAnR2V0SWRlbnRpdHlTb3VyY2UnLFxuICAgICAgJ0dldFBvbGljeScsXG4gICAgICAnR2V0UG9saWN5U3RvcmUnLFxuICAgICAgJ0dldFBvbGljeVRlbXBsYXRlJyxcbiAgICAgICdHZXRTY2hlbWEnLFxuICAgICAgJ0lzQXV0aG9yaXplZCcsXG4gICAgICAnSXNBdXRob3JpemVkV2l0aFRva2VuJ1xuICAgIF0sXG4gICAgTGlzdDogW1xuICAgICAgJ0xpc3RJZGVudGl0eVNvdXJjZXMnLFxuICAgICAgJ0xpc3RQb2xpY2llcycsXG4gICAgICAnTGlzdFBvbGljeVN0b3JlcycsXG4gICAgICAnTGlzdFBvbGljeVRlbXBsYXRlcydcbiAgICBdXG4gIH07XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIHBvbGljeS1zdG9yZSB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92ZXJpZmllZHBlcm1pc3Npb25zL2xhdGVzdC9hcGlyZWZlcmVuY2UvcG9saWN5LXN0b3Jlcy5odG1sXG4gICAqXG4gICAqIEBwYXJhbSBwb2xpY3lTdG9yZUlkIC0gSWRlbnRpZmllciBmb3IgdGhlIHBvbGljeVN0b3JlSWQuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICovXG4gIHB1YmxpYyBvblBvbGljeVN0b3JlKHBvbGljeVN0b3JlSWQ6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06dmVyaWZpZWRwZXJtaXNzaW9uczo6JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06cG9saWN5LXN0b3JlLyR7IHBvbGljeVN0b3JlSWQgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXRlbWVudCBwcm92aWRlciBmb3Igc2VydmljZSBbdmVyaWZpZWRwZXJtaXNzaW9uc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfYW1hem9udmVyaWZpZWRwZXJtaXNzaW9ucy5odG1sKS5cbiAgICpcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3BzPzogaWFtLlBvbGljeVN0YXRlbWVudFByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICB9XG59XG4iXX0=