Skip to main content

@aws-prototyping-sdk/aws-arch

Project description

aws-arch (AWS Architecture)

Library to provide metadata for AWS Services and AWS Resources.

This package generates mappings between @aws-cdk/cfnspec and AWS Architecture Icons, and resolves resource metadata between these systems to infer a normalized definition of an AwsService and AwsResource.

The primary aim of this package is to provide a consistent mechanism for other libraries to retrieve naming and assets associated with CloudFormation resources, and by extension CDK resources.

Get Started

yarn add '@aws-prototyping-sdk/aws-arch'
import { AwsArchitecture } from "@aws-prototyping-sdk/aws-arch";

const s3Bucket = AwsArchitecture.getResource("AWS::S3::Bucket");
const s3Service = AwsArchitecture.getService(s3Bucket.service);

console.log(s3Bucket);
console.log(s3Service);
// => console.log(s3Bucket);
{
	"name": "Amazon Simple Storage Service Bucket",
	"cfnType": "AWS::S3::Bucket",
	"awsAssetName": "Amazon-Simple-Storage-Service_Bucket",
	"awsAssetIcon": "resources/Amazon-Simple-Storage-Service_Bucket.png",
	"service": "S3"
}

// => console.log(s3Service);
{
	"provider": "AWS",
	"name": "Amazon Simple Storage Service",
	"cfnName": "S3",
	"awsAssetIcon": "services/Amazon-Simple-Storage-Service.png",
	"awsAssetName": "Amazon-Simple-Storage-Service"
}

Aws Achritecture Icons

Retrieve category, service, and resource AWS Architecture Icons.

Icon methods return relative asset key paths, as most frameworks have the concept of a base path (imagepaths). Use AwsArchitecture.resolveAssetPath(...) to get absolute path.

Retrieve icon based on CloudFormation Resource Type

Resource Icon

const s3Bucket = AwsArchitecture.getResource("AWS::S3::Bucket");

const s3BucketPng = s3Bucket.icon("png"); // => "storage/s3/bucket.png"
const s3BucketSvg = s3Bucket.icon("svg"); // => "storage/s3/bucket.svg"

// Resolve absolute path for icons
AwsArchitecture.resolveAssetPath(s3BucketPng); // => /User/example/.../node_modules/@aws-prototyping-sdk/aws-arc/assets/storage/s3/bucket.png

Service Icon

const s3Service = AwsArchitecture.getResource("AWS::S3::Bucket").service;
// equivalent to: `AwsArchitecture.getService("S3")`

const s3ServicePng = s3Service.icon("png"); // => "storage/s3/service_icon.png"
const s3ServiceSvg = s3Service.icon("svg"); // => "storage/s3/service_icon.svg"

// Resolve absolute path for icons
AwsArchitecture.resolveAssetPath(s3ServicePng); // => /User/example/.../node_modules/@aws-prototyping-sdk/aws-arc/assets/storage/s3/service_icon.png

Category Icon

const storageCategory =
  AwsArchitecture.getResource("AWS::S3::Bucket").service.category;
// equivalent to: `AwsArchitecture.getCategory("storage")`

const storageCategoryPng = storageCategory.icon("png"); // => "storage/category_icon.png"
const storageCategorySvg = storageCategory.icon("svg"); // => "storage/category_icon.svg"

// Resolve absolute path for icons
AwsArchitecture.resolveAssetPath(storageCategoryPng); // => /User/example/.../node_modules/@aws-prototyping-sdk/aws-arc/assets/storage/category_icon.png

Development

This package auto-generates many types and asset files from external sources, which are then auto mapped based on common patterns and explict mappings for edge-cases.

The auto-generation is handled by /scripts files which can be run via corresponding package scripts (eg: npx projen generate:assets => /scripts/generate-assets.ts).

There is an implicit sequential order the scripts must be called in due to dependencies, which is handled by npx projen generate script. The generate script is also invoked prior to npx projen build if generated asset directory does not exist.

For local development of packages that depend on aws-arch package, you will need to call npx projen generate && npx projen compile (or npx projen build) prior to locally importing this package.

To update AWS Architecture Icons, change the url in ASSET_PACKAGE_ZIP_URL.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aws_prototyping_sdk.aws_arch-0.15.5.tar.gz (19.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aws_prototyping_sdk.aws_arch-0.15.5-py3-none-any.whl (19.3 MB view details)

Uploaded Python 3

File details

Details for the file aws_prototyping_sdk.aws_arch-0.15.5.tar.gz.

File metadata

File hashes

Hashes for aws_prototyping_sdk.aws_arch-0.15.5.tar.gz
Algorithm Hash digest
SHA256 ef8f47509ba9e302276038a2ccd450fcf88ac515faedb5f601261aab26472f7f
MD5 5782ce3a15dd7de00b2dc7d3e676577f
BLAKE2b-256 ddfe4cd1cfc8328f1f13948042ca2a1ad9b46d5de654af06f48efafdb882fe66

See more details on using hashes here.

File details

Details for the file aws_prototyping_sdk.aws_arch-0.15.5-py3-none-any.whl.

File metadata

File hashes

Hashes for aws_prototyping_sdk.aws_arch-0.15.5-py3-none-any.whl
Algorithm Hash digest
SHA256 6f295a1657e1cb056402125cc3a0144a5945cb408f31ab55fbadc5eed8c869af
MD5 dd60d17ef646372fa3c2936742768a81
BLAKE2b-256 ebe982d5bea1e1af5b25547ae9e4ca60bec1d56ff46aab99f4003a01709ca87c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page