UNPKG

aws-cdk

Version:

CDK Toolkit, the command line tool for CDK apps

33 lines 4.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EndpointServiceAZContextProviderPlugin = void 0; const sdk_provider_1 = require("../api/aws-auth/sdk-provider"); const logging_1 = require("../logging"); /** * Plugin to retrieve the Availability Zones for an endpoint service */ class EndpointServiceAZContextProviderPlugin { constructor(aws) { this.aws = aws; } async getValue(args) { const region = args.region; const account = args.account; const serviceName = args.serviceName; (0, logging_1.debug)(`Reading AZs for ${account}:${region}:${serviceName}`); const ec2 = (await (0, sdk_provider_1.initContextProviderSdk)(this.aws, args)).ec2(); const response = await ec2.describeVpcEndpointServices({ ServiceNames: [serviceName], }); // expect a service in the response if (!response.ServiceDetails || response.ServiceDetails.length === 0) { (0, logging_1.debug)(`Could not retrieve service details for ${account}:${region}:${serviceName}`); return []; } const azs = response.ServiceDetails[0].AvailabilityZones; (0, logging_1.debug)(`Endpoint service ${account}:${region}:${serviceName} is available in availability zones ${azs}`); return azs; } } exports.EndpointServiceAZContextProviderPlugin = EndpointServiceAZContextProviderPlugin; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbmRwb2ludC1zZXJ2aWNlLWF2YWlsYWJpbGl0eS16b25lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwrREFBd0Y7QUFFeEYsd0NBQW1DO0FBRW5DOztHQUVHO0FBQ0gsTUFBYSxzQ0FBc0M7SUFDakQsWUFBNkIsR0FBZ0I7UUFBaEIsUUFBRyxHQUFILEdBQUcsQ0FBYTtJQUFHLENBQUM7SUFFMUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFrRDtRQUN0RSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNyQyxJQUFBLGVBQUssRUFBQyxtQkFBbUIsT0FBTyxJQUFJLE1BQU0sSUFBSSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzdELE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxJQUFBLHFDQUFzQixFQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNqRSxNQUFNLFFBQVEsR0FBRyxNQUFNLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQztZQUNyRCxZQUFZLEVBQUUsQ0FBQyxXQUFXLENBQUM7U0FDNUIsQ0FBQyxDQUFDO1FBRUgsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxJQUFJLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JFLElBQUEsZUFBSyxFQUFDLDBDQUEwQyxPQUFPLElBQUksTUFBTSxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDcEYsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztRQUN6RCxJQUFBLGVBQUssRUFBQyxvQkFBb0IsT0FBTyxJQUFJLE1BQU0sSUFBSSxXQUFXLHVDQUF1QyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3hHLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUNGO0FBdEJELHdGQXNCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW5kcG9pbnRTZXJ2aWNlQXZhaWxhYmlsaXR5Wm9uZXNDb250ZXh0UXVlcnkgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHsgdHlwZSBTZGtQcm92aWRlciwgaW5pdENvbnRleHRQcm92aWRlclNkayB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9zZGstcHJvdmlkZXInO1xuaW1wb3J0IHsgQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi4vYXBpL3BsdWdpbic7XG5pbXBvcnQgeyBkZWJ1ZyB9IGZyb20gJy4uL2xvZ2dpbmcnO1xuXG4vKipcbiAqIFBsdWdpbiB0byByZXRyaWV2ZSB0aGUgQXZhaWxhYmlsaXR5IFpvbmVzIGZvciBhbiBlbmRwb2ludCBzZXJ2aWNlXG4gKi9cbmV4cG9ydCBjbGFzcyBFbmRwb2ludFNlcnZpY2VBWkNvbnRleHRQcm92aWRlclBsdWdpbiBpbXBsZW1lbnRzIENvbnRleHRQcm92aWRlclBsdWdpbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXdzOiBTZGtQcm92aWRlcikge31cblxuICBwdWJsaWMgYXN5bmMgZ2V0VmFsdWUoYXJnczogRW5kcG9pbnRTZXJ2aWNlQXZhaWxhYmlsaXR5Wm9uZXNDb250ZXh0UXVlcnkpIHtcbiAgICBjb25zdCByZWdpb24gPSBhcmdzLnJlZ2lvbjtcbiAgICBjb25zdCBhY2NvdW50ID0gYXJncy5hY2NvdW50O1xuICAgIGNvbnN0IHNlcnZpY2VOYW1lID0gYXJncy5zZXJ2aWNlTmFtZTtcbiAgICBkZWJ1ZyhgUmVhZGluZyBBWnMgZm9yICR7YWNjb3VudH06JHtyZWdpb259OiR7c2VydmljZU5hbWV9YCk7XG4gICAgY29uc3QgZWMyID0gKGF3YWl0IGluaXRDb250ZXh0UHJvdmlkZXJTZGsodGhpcy5hd3MsIGFyZ3MpKS5lYzIoKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGVjMi5kZXNjcmliZVZwY0VuZHBvaW50U2VydmljZXMoe1xuICAgICAgU2VydmljZU5hbWVzOiBbc2VydmljZU5hbWVdLFxuICAgIH0pO1xuXG4gICAgLy8gZXhwZWN0IGEgc2VydmljZSBpbiB0aGUgcmVzcG9uc2VcbiAgICBpZiAoIXJlc3BvbnNlLlNlcnZpY2VEZXRhaWxzIHx8IHJlc3BvbnNlLlNlcnZpY2VEZXRhaWxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZGVidWcoYENvdWxkIG5vdCByZXRyaWV2ZSBzZXJ2aWNlIGRldGFpbHMgZm9yICR7YWNjb3VudH06JHtyZWdpb259OiR7c2VydmljZU5hbWV9YCk7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNvbnN0IGF6cyA9IHJlc3BvbnNlLlNlcnZpY2VEZXRhaWxzWzBdLkF2YWlsYWJpbGl0eVpvbmVzO1xuICAgIGRlYnVnKGBFbmRwb2ludCBzZXJ2aWNlICR7YWNjb3VudH06JHtyZWdpb259OiR7c2VydmljZU5hbWV9IGlzIGF2YWlsYWJsZSBpbiBhdmFpbGFiaWxpdHkgem9uZXMgJHthenN9YCk7XG4gICAgcmV0dXJuIGF6cztcbiAgfVxufVxuIl19