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.
Metadata
Release files for aws-prototyping-sdk.aws-arch 0.19.68
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aws_prototyping_sdk.aws_arch-0.19.68.tar.gz | 19.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aws_prototyping_sdk.aws_arch-0.19.68-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 38.7 MB
Release files / aws_prototyping_sdk.aws_arch-0.19.68.tar.gz
| Download URL | aws_prototyping_sdk.aws_arch-0.19.68.tar.gz |
|---|---|
| Size | 19.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
508beccff44b628e73bd450ad7a23c9f7424ad167d3d20d5919a7004b4fc2f7d
|
|
BLAKE2b-256 checksum How to use checksums |
a2eb52e71cb9f41473901358f1095dc1768f901874e891858c5d567c361f27fa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.4
|
Release files / aws_prototyping_sdk.aws_arch-0.19.68-py3-none-any.whl
| Download URL | aws_prototyping_sdk.aws_arch-0.19.68-py3-none-any.whl |
|---|---|
| Size | 19.3 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6af5af6e3d6e926476c2f4f2e5d8f37a03024778bcc666838db83aee09193c77
|
|
BLAKE2b-256 checksum How to use checksums |
436b3640afcf64c2d45782100a8a2a48311a075a4f831930bbd1180014d918f8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.4
|