UNPKG

@csermet/multiprovider

Version:

cloud-graph provider plugin for AWS used to fetch AWS cloud data.

71 lines (70 loc) 2.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // import { formatTagsFromMap } from '../../utils/format' // TODO: Build this const sdk_1 = require("@cloudgraph/sdk"); const generateArns_1 = require("../../utils/generateArns"); /** * AthenaDataCatalog */ exports.default = ({ account, service: rawData, region, }) => { const { CatalogName: catalogName, Type: type, databases = [] } = rawData; const arn = generateArns_1.athenaDataCatalogArn({ region, account, name: catalogName }); const formatColumns = (column) => { return { id: sdk_1.generateUniqueId({ arn, ...column, }), name: column.Name, type: column.Type, comment: column.Comment, }; }; const formatMetadata = (metadata) => { return { name: metadata.Name, createTime: metadata.CreateTime?.toISOString(), lastAccessTime: metadata.LastAccessTime?.toISOString(), tableType: metadata.TableType, columns: metadata.Columns?.map(formatColumns), partitionKeys: metadata.PartitionKeys?.map(formatColumns), parameters: Object.keys(metadata.Parameters ?? {}).map(key => ({ id: sdk_1.generateUniqueId({ arn, ...metadata, }), key, value: metadata.Parameters[key], })), }; }; const formattedDatabases = databases.map(val => ({ id: sdk_1.generateUniqueId({ arn, catalogName, ...val, }), name: val.Name, description: val.Description, parameters: Object.keys(val.Parameters ?? {}).map(key => ({ id: sdk_1.generateUniqueId({ arn, catalogName, key, value: val.Parameters[key], }), key, value: val.Parameters[key], })), metadata: formatMetadata(val.metadata), })); return { id: arn, arn, region, accountId: account, catalogName, type, databases: formattedDatabases, }; };