@cdklabs/cdk-ethereum-node
Version:
CDK construct to deploy an Ethereum node running on Amazon Managed Blockchain
78 lines • 6.94 kB
JavaScript
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: MIT-0
Object.defineProperty(exports, "__esModule", { value: true });
exports.SUPPORTED_AVAILABILITY_ZONES = exports.SUPPORTED_REGIONS = void 0;
exports.validateRegion = validateRegion;
exports.validateAvailabilityZone = validateAvailabilityZone;
/**
* Regions where Managed Blockchain is supported, for details see
* https://aws.amazon.com/managed-blockchain/pricing/hyperledger/
*/
exports.SUPPORTED_REGIONS = [
'ap-northeast-1',
'ap-northeast-2',
'ap-southeast-1',
'eu-west-1',
'eu-west-2',
'us-east-1',
];
/**
* Map of supported regions to their availability zones
*/
exports.SUPPORTED_AVAILABILITY_ZONES = {
'ap-northeast-1': [
'ap-northeast-1a',
'ap-northeast-1b',
'ap-northeast-1c',
],
'ap-northeast-2': [
'ap-northeast-2a',
'ap-northeast-2b',
'ap-northeast-2c',
'ap-northeast-2d',
],
'ap-southeast-1': [
'ap-southeast-1a',
'ap-southeast-1b',
'ap-southeast-1c',
],
'eu-west-1': [
'eu-west-1a',
'eu-west-1b',
'eu-west-1c',
],
'eu-west-2': [
'eu-west-2a',
'eu-west-2b',
'eu-west-2c',
],
'us-east-1': [
'us-east-1a',
'us-east-1b',
'us-east-1c',
'us-east-1d',
'us-east-1e',
'us-east-1f',
],
};
/**
* Throw an error if provided region is not in the supported list
*/
function validateRegion(region) {
if (!exports.SUPPORTED_REGIONS.includes(region)) {
const regionList = exports.SUPPORTED_REGIONS.join(', ');
throw new Error(`Managed Blockchain is only available in the following regions: ${regionList}.`);
}
}
/**
* Throw an error if provided availability zone is not in the supported list
*/
function validateAvailabilityZone(region, availabilityZone) {
const availabililtyZonesForRegion = exports.SUPPORTED_AVAILABILITY_ZONES[region];
if (typeof availabilityZone === 'undefined' || !availabililtyZonesForRegion.includes(availabilityZone)) {
const availabilityZoneList = availabililtyZonesForRegion.join(', ');
throw new Error(`Managed Blockchain in ${region} is only available in the following availability zones: ${availabilityZoneList}.`);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3V0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEscUVBQXFFO0FBQ3JFLGlDQUFpQzs7O0FBMERqQyx3Q0FLQztBQUtELDREQU1DO0FBeEVEOzs7RUFHRTtBQUNXLFFBQUEsaUJBQWlCLEdBQUc7SUFDL0IsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsV0FBVztJQUNYLFdBQVc7SUFDWCxXQUFXO0NBQ1osQ0FBQztBQUVGOztHQUVHO0FBQ1UsUUFBQSw0QkFBNEIsR0FBa0M7SUFDekUsZ0JBQWdCLEVBQUU7UUFDaEIsaUJBQWlCO1FBQ2pCLGlCQUFpQjtRQUNqQixpQkFBaUI7S0FDbEI7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixpQkFBaUI7UUFDakIsaUJBQWlCO1FBQ2pCLGlCQUFpQjtRQUNqQixpQkFBaUI7S0FDbEI7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixpQkFBaUI7UUFDakIsaUJBQWlCO1FBQ2pCLGlCQUFpQjtLQUNsQjtJQUNELFdBQVcsRUFBRTtRQUNYLFlBQVk7UUFDWixZQUFZO1FBQ1osWUFBWTtLQUNiO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsWUFBWTtRQUNaLFlBQVk7UUFDWixZQUFZO0tBQ2I7SUFDRCxXQUFXLEVBQUU7UUFDWCxZQUFZO1FBQ1osWUFBWTtRQUNaLFlBQVk7UUFDWixZQUFZO1FBQ1osWUFBWTtRQUNaLFlBQVk7S0FDYjtDQUNGLENBQUM7QUFFRjs7R0FFRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxNQUFjO0lBQzNDLElBQUksQ0FBQyx5QkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN4QyxNQUFNLFVBQVUsR0FBRyx5QkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxrRUFBa0UsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNuRyxDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQUMsTUFBYyxFQUFFLGdCQUF5QjtJQUNoRixNQUFNLDJCQUEyQixHQUFHLG9DQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pFLElBQUksT0FBTyxnQkFBZ0IsS0FBSyxXQUFXLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1FBQ3ZHLE1BQU0sb0JBQW9CLEdBQUcsMkJBQTJCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLE1BQU0sMkRBQTJELG9CQUFvQixHQUFHLENBQUMsQ0FBQztJQUNySSxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVC0wXG5cbi8qKlxuICogUmVnaW9ucyB3aGVyZSBNYW5hZ2VkIEJsb2NrY2hhaW4gaXMgc3VwcG9ydGVkLCBmb3IgZGV0YWlscyBzZWVcbiAqIGh0dHBzOi8vYXdzLmFtYXpvbi5jb20vbWFuYWdlZC1ibG9ja2NoYWluL3ByaWNpbmcvaHlwZXJsZWRnZXIvXG4qL1xuZXhwb3J0IGNvbnN0IFNVUFBPUlRFRF9SRUdJT05TID0gW1xuICAnYXAtbm9ydGhlYXN0LTEnLFxuICAnYXAtbm9ydGhlYXN0LTInLFxuICAnYXAtc291dGhlYXN0LTEnLFxuICAnZXUtd2VzdC0xJyxcbiAgJ2V1LXdlc3QtMicsXG4gICd1cy1lYXN0LTEnLFxuXTtcblxuLyoqXG4gKiBNYXAgb2Ygc3VwcG9ydGVkIHJlZ2lvbnMgdG8gdGhlaXIgYXZhaWxhYmlsaXR5IHpvbmVzXG4gKi9cbmV4cG9ydCBjb25zdCBTVVBQT1JURURfQVZBSUxBQklMSVRZX1pPTkVTOiBSZWNvcmQ8c3RyaW5nLCBBcnJheTxzdHJpbmc+PiA9IHtcbiAgJ2FwLW5vcnRoZWFzdC0xJzogW1xuICAgICdhcC1ub3J0aGVhc3QtMWEnLFxuICAgICdhcC1ub3J0aGVhc3QtMWInLFxuICAgICdhcC1ub3J0aGVhc3QtMWMnLFxuICBdLFxuICAnYXAtbm9ydGhlYXN0LTInOiBbXG4gICAgJ2FwLW5vcnRoZWFzdC0yYScsXG4gICAgJ2FwLW5vcnRoZWFzdC0yYicsXG4gICAgJ2FwLW5vcnRoZWFzdC0yYycsXG4gICAgJ2FwLW5vcnRoZWFzdC0yZCcsXG4gIF0sXG4gICdhcC1zb3V0aGVhc3QtMSc6IFtcbiAgICAnYXAtc291dGhlYXN0LTFhJyxcbiAgICAnYXAtc291dGhlYXN0LTFiJyxcbiAgICAnYXAtc291dGhlYXN0LTFjJyxcbiAgXSxcbiAgJ2V1LXdlc3QtMSc6IFtcbiAgICAnZXUtd2VzdC0xYScsXG4gICAgJ2V1LXdlc3QtMWInLFxuICAgICdldS13ZXN0LTFjJyxcbiAgXSxcbiAgJ2V1LXdlc3QtMic6IFtcbiAgICAnZXUtd2VzdC0yYScsXG4gICAgJ2V1LXdlc3QtMmInLFxuICAgICdldS13ZXN0LTJjJyxcbiAgXSxcbiAgJ3VzLWVhc3QtMSc6IFtcbiAgICAndXMtZWFzdC0xYScsXG4gICAgJ3VzLWVhc3QtMWInLFxuICAgICd1cy1lYXN0LTFjJyxcbiAgICAndXMtZWFzdC0xZCcsXG4gICAgJ3VzLWVhc3QtMWUnLFxuICAgICd1cy1lYXN0LTFmJyxcbiAgXSxcbn07XG5cbi8qKlxuICogVGhyb3cgYW4gZXJyb3IgaWYgcHJvdmlkZWQgcmVnaW9uIGlzIG5vdCBpbiB0aGUgc3VwcG9ydGVkIGxpc3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUmVnaW9uKHJlZ2lvbjogc3RyaW5nKSB7XG4gIGlmICghU1VQUE9SVEVEX1JFR0lPTlMuaW5jbHVkZXMocmVnaW9uKSkge1xuICAgIGNvbnN0IHJlZ2lvbkxpc3QgPSBTVVBQT1JURURfUkVHSU9OUy5qb2luKCcsICcpO1xuICAgIHRocm93IG5ldyBFcnJvcihgTWFuYWdlZCBCbG9ja2NoYWluIGlzIG9ubHkgYXZhaWxhYmxlIGluIHRoZSBmb2xsb3dpbmcgcmVnaW9uczogJHtyZWdpb25MaXN0fS5gKTtcbiAgfVxufVxuXG4vKipcbiAqIFRocm93IGFuIGVycm9yIGlmIHByb3ZpZGVkIGF2YWlsYWJpbGl0eSB6b25lIGlzIG5vdCBpbiB0aGUgc3VwcG9ydGVkIGxpc3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQXZhaWxhYmlsaXR5Wm9uZShyZWdpb246IHN0cmluZywgYXZhaWxhYmlsaXR5Wm9uZT86IHN0cmluZykge1xuICBjb25zdCBhdmFpbGFiaWxpbHR5Wm9uZXNGb3JSZWdpb24gPSBTVVBQT1JURURfQVZBSUxBQklMSVRZX1pPTkVTW3JlZ2lvbl07XG4gIGlmICh0eXBlb2YgYXZhaWxhYmlsaXR5Wm9uZSA9PT0gJ3VuZGVmaW5lZCcgfHwgIWF2YWlsYWJpbGlsdHlab25lc0ZvclJlZ2lvbi5pbmNsdWRlcyhhdmFpbGFiaWxpdHlab25lKSkge1xuICAgIGNvbnN0IGF2YWlsYWJpbGl0eVpvbmVMaXN0ID0gYXZhaWxhYmlsaWx0eVpvbmVzRm9yUmVnaW9uLmpvaW4oJywgJyk7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNYW5hZ2VkIEJsb2NrY2hhaW4gaW4gJHtyZWdpb259IGlzIG9ubHkgYXZhaWxhYmxlIGluIHRoZSBmb2xsb3dpbmcgYXZhaWxhYmlsaXR5IHpvbmVzOiAke2F2YWlsYWJpbGl0eVpvbmVMaXN0fS5gKTtcbiAgfVxufVxuIl19
;