iam-floyd
Version:
AWS IAM policy statement generator with fluent interface
51 lines • 3.85 kB
JavaScript
;
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