@csermet/multiprovider
Version:
cloud-graph provider plugin for AWS used to fetch AWS cloud data.
229 lines (228 loc) • 7.28 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const sdk_1 = require("@cloudgraph/sdk");
exports.default = ({ service, account, region, }) => {
const { taskDefinitionArn: arn, family, taskRoleArn, executionRoleArn, networkMode, revision, volumes, status, requiresAttributes, placementConstraints, compatibilities, requiresCompatibilities, cpu, memory, inferenceAccelerators, pidMode, ipcMode, proxyConfiguration, registeredAt, deregisteredAt, registeredBy, ephemeralStorage, } = service;
const containerDefinitions = service.containerDefinitions?.map(def => ({
id: sdk_1.generateUniqueId({
arn,
...def,
}),
...def,
portMappings: def.portMappings?.map(mapping => ({
id: sdk_1.generateUniqueId({
arn,
...mapping,
}),
...mapping,
})),
environment: def.environment?.map(env => ({
id: sdk_1.generateUniqueId({
arn,
...env,
}),
...env,
})),
environmentFiles: def.environmentFiles?.map(file => ({
id: sdk_1.generateUniqueId({
arn,
...file,
}),
...file,
})),
mountPoints: def.mountPoints?.map(mp => ({
id: sdk_1.generateUniqueId({
arn,
...mp,
}),
...mp,
})),
volumesFrom: def.volumesFrom?.map(vol => ({
id: sdk_1.generateUniqueId({
arn,
...vol,
}),
...vol,
})),
linuxParameters: {
...def?.linuxParameters,
devices: def.linuxParameters?.devices?.map(device => ({
id: sdk_1.generateUniqueId({
arn,
...device,
}),
...device,
})),
tmpfs: def.linuxParameters?.tmpfs?.map(fs => ({
id: sdk_1.generateUniqueId({
arn,
...fs,
}),
...fs,
})),
},
secrets: def.secrets?.map(secret => ({
id: sdk_1.generateUniqueId({
arn,
...secret,
}),
...secret,
})),
dependsOn: def.dependsOn?.map(dep => ({
id: sdk_1.generateUniqueId({
arn,
...dep,
}),
...dep,
})),
extraHosts: def.extraHosts?.map(host => ({
id: sdk_1.generateUniqueId({
arn,
...host,
}),
...host,
})),
dockerLabels: Object.keys(def.dockerLabels || {}).map(key => ({
id: sdk_1.generateUniqueId({
arn,
key,
value: def.dockerLabels[key],
}),
key,
value: def.dockerLabels[key],
})),
ulimits: def.ulimits?.map(ulimit => ({
id: sdk_1.generateUniqueId({
arn,
...ulimit,
}),
...ulimit,
})),
logConfiguration: {
...def.logConfiguration,
options: Object.keys(def.logConfiguration?.options || {}).map(key => ({
id: sdk_1.generateUniqueId({
arn,
key,
value: def.logConfiguration?.options[key],
}),
key,
value: def.logConfiguration?.options[key],
})),
secretOptions: def.logConfiguration?.secretOptions?.map(option => ({
id: sdk_1.generateUniqueId({
arn,
...option,
}),
...option,
})),
},
systemControls: def.systemControls?.map(control => ({
id: sdk_1.generateUniqueId({
arn,
...control,
}),
...control,
})),
resourceRequirements: def.resourceRequirements?.map(rr => ({
id: sdk_1.generateUniqueId({
arn,
...rr,
}),
...rr,
})),
firelensConfiguration: {
...def.firelensConfiguration,
options: Object.keys(def.firelensConfiguration?.options || {}).map(key => ({
id: sdk_1.generateUniqueId({
arn,
key,
value: def.firelensConfiguration?.options[key],
}),
key,
value: def.firelensConfiguration?.options[key],
})),
},
}));
return {
id: arn,
arn,
accountId: account,
region,
containerDefinitions,
family,
taskRoleArn,
executionRoleArn,
networkMode,
revision,
volumes: volumes?.map(vol => ({
id: sdk_1.generateUniqueId({
arn,
...vol,
}),
...vol,
dockerVolumeConfiguration: {
driverOpts: Object.keys(vol?.dockerVolumeConfiguration?.driverOpts).map(key => ({
id: sdk_1.generateUniqueId({
arn,
key,
value: vol?.dockerVolumeConfiguration?.driverOpts[key],
}),
key,
value: vol?.dockerVolumeConfiguration?.driverOpts[key],
})),
labels: Object.keys(vol?.dockerVolumeConfiguration?.labels).map(key => ({
id: sdk_1.generateUniqueId({
arn,
key,
value: vol?.dockerVolumeConfiguration?.labels[key],
}),
key,
value: vol?.dockerVolumeConfiguration?.labels[key],
})),
},
})),
status,
requiresAttributes: requiresAttributes?.map(attr => ({
id: sdk_1.generateUniqueId({
arn,
...attr,
}),
...attr,
})),
placementConstraints: placementConstraints?.map(pc => ({
id: sdk_1.generateUniqueId({
arn,
...pc,
}),
...pc,
})),
compatibilities,
requiresCompatibilities,
cpu,
memory,
inferenceAccelerators: inferenceAccelerators?.map(ia => ({
id: sdk_1.generateUniqueId({
arn,
...ia,
}),
...ia,
})),
pidMode,
ipcMode,
proxyConfiguration: {
...proxyConfiguration,
properties: proxyConfiguration?.properties?.map(prop => ({
id: sdk_1.generateUniqueId({
arn,
...prop,
}),
...prop,
})),
},
registeredAt: registeredAt?.toISOString(),
deregisteredAt: deregisteredAt?.toISOString(),
registeredBy,
ephemeralStorage,
};
};