UNPKG

iam-floyd

Version:

AWS IAM policy statement generator with fluent interface

51 lines 3.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PolicyStatementWithEffect = exports.Effect = void 0; const _4_resources_1 = require("./4-resources"); /** * Policy effects */ var Effect; (function (Effect) { Effect["allow"] = "Allow"; Effect["deny"] = "Deny"; })(Effect || (exports.Effect = Effect = {})); /** * Adds "effect" functionality to the Policy Statement */ class PolicyStatementWithEffect extends _4_resources_1.PolicyStatementWithResources { constructor() { super(...arguments); this.effect = Effect.allow; } /** * Injects effect into the statement. * * Only relevant for the main package. In CDK mode this only calls super. */ toJSON() { // @ts-ignore only available after swapping 1-base if (typeof this.addResources == 'function') { return super.toJSON(); } const statement = super.toJSON(); statement.Effect = this.effect; return statement; } /** * Allow the actions in this statement */ allow() { this.effect = Effect.allow; return this; } /** * Deny the actions in this statement */ deny() { this.effect = Effect.deny; return this; } } exports.PolicyStatementWithEffect = PolicyStatementWithEffect; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNS1lZmZlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyI1LWVmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnREFBNkQ7QUFFN0Q7O0dBRUc7QUFDSCxJQUFZLE1BR1g7QUFIRCxXQUFZLE1BQU07SUFDaEIseUJBQWUsQ0FBQTtJQUNmLHVCQUFhLENBQUE7QUFDZixDQUFDLEVBSFcsTUFBTSxzQkFBTixNQUFNLFFBR2pCO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLHlCQUEwQixTQUFRLDJDQUE0QjtJQUEzRTs7UUFDUyxXQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztJQWdDL0IsQ0FBQztJQTlCQzs7OztPQUlHO0lBQ0ksTUFBTTtRQUNYLGtEQUFrRDtRQUNsRCxJQUFJLE9BQU8sSUFBSSxDQUFDLFlBQVksSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUMzQyxPQUFPLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN4QixDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2pDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMvQixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLO1FBQ1YsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzNCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksSUFBSTtRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRjtBQWpDRCw4REFpQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnRXaXRoUmVzb3VyY2VzIH0gZnJvbSAnLi80LXJlc291cmNlcyc7XG5cbi8qKlxuICogUG9saWN5IGVmZmVjdHNcbiAqL1xuZXhwb3J0IGVudW0gRWZmZWN0IHtcbiAgYWxsb3cgPSAnQWxsb3cnLFxuICBkZW55ID0gJ0RlbnknLFxufVxuXG4vKipcbiAqIEFkZHMgXCJlZmZlY3RcIiBmdW5jdGlvbmFsaXR5IHRvIHRoZSBQb2xpY3kgU3RhdGVtZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBQb2xpY3lTdGF0ZW1lbnRXaXRoRWZmZWN0IGV4dGVuZHMgUG9saWN5U3RhdGVtZW50V2l0aFJlc291cmNlcyB7XG4gIHB1YmxpYyBlZmZlY3QgPSBFZmZlY3QuYWxsb3c7XG5cbiAgLyoqXG4gICAqIEluamVjdHMgZWZmZWN0IGludG8gdGhlIHN0YXRlbWVudC5cbiAgICpcbiAgICogT25seSByZWxldmFudCBmb3IgdGhlIG1haW4gcGFja2FnZS4gSW4gQ0RLIG1vZGUgdGhpcyBvbmx5IGNhbGxzIHN1cGVyLlxuICAgKi9cbiAgcHVibGljIHRvSlNPTigpOiBhbnkge1xuICAgIC8vIEB0cy1pZ25vcmUgb25seSBhdmFpbGFibGUgYWZ0ZXIgc3dhcHBpbmcgMS1iYXNlXG4gICAgaWYgKHR5cGVvZiB0aGlzLmFkZFJlc291cmNlcyA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gc3VwZXIudG9KU09OKCk7XG4gICAgfVxuICAgIGNvbnN0IHN0YXRlbWVudCA9IHN1cGVyLnRvSlNPTigpO1xuICAgIHN0YXRlbWVudC5FZmZlY3QgPSB0aGlzLmVmZmVjdDtcbiAgICByZXR1cm4gc3RhdGVtZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG93IHRoZSBhY3Rpb25zIGluIHRoaXMgc3RhdGVtZW50XG4gICAqL1xuICBwdWJsaWMgYWxsb3coKSB7XG4gICAgdGhpcy5lZmZlY3QgPSBFZmZlY3QuYWxsb3c7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogRGVueSB0aGUgYWN0aW9ucyBpbiB0aGlzIHN0YXRlbWVudFxuICAgKi9cbiAgcHVibGljIGRlbnkoKSB7XG4gICAgdGhpcy5lZmZlY3QgPSBFZmZlY3QuZGVueTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxufVxuIl19