Merge from upstream repository

pull/1076/head
Dmitry Pavlov 4 years ago
commit b873b6cb7d

@ -30,9 +30,9 @@ ffmpeg -i my_big_image.jpg -vf scale=w=256:h=256:force_original_aspect_ratio=dec
Then just run the `./autogen.sh` to generate the added or updated node classes. (cf. [DEVELOPMENT][DEVELOPMENT.md])
> IMPORTANT NOTE: To run `autogen.sh`, you need [round][round] and
> IMPORTANT NOTE: To run `autogen.sh`, you need [round][round], [black][black] and
> [inkscape][inkscape] command lines that are used for cleaning the image
> resource filenames.
> resource filenames and formatting the generated python code.
>
> macOS users can download the inkscape via Homebrew.
>
@ -40,6 +40,7 @@ Then just run the `./autogen.sh` to generate the added or updated node classes.
[DEVELOPMENT.md]: ./DEVELOPMENT.md
[round]: https://github.com/mingrammer/round
[black]: https://pypi.org/project/black
[inkscape]: https://inkscape.org/ko/release
### Update Aliases

@ -34,4 +34,44 @@ You should have docker installed in your system, if not click [here](https://doc
docker exec diagrams ./autogen.sh
```
6. If the unit tests and the bash script `autogen.sh` is working correctly, then your system is now ready for development.
6. If the unit tests and the bash script `autogen.sh` is working correctly, then your system is now ready for development.
## Mac local development setup
To be able to develop and run diagrams locally on you Mac device, you should have [Python](https://www.python.org/downloads/), [Go](https://golang.org/doc/install) and [brew](https://brew.sh/) installed on your system.
1. Go to diagrams root directory.
2. Install poetry, the Python project management packge used by diagrams.
```shell
pip install poetry
```
3. Install the project's Python dependencies.
```shell
poetry install
```
4. Install diagrams binary dependencies.
```shell
brew install imagemagick inkscape black
go get github.com/mingrammer/round
```
5. Run unit tests to confirm that it's working.
```shell
python -m unittest tests/*.py -v
```
6. Run the bash script `autogen.sh` to test.
```shell
./autogen.sh
```
7. If the unit tests and the bash script `autogen.sh` is working correctly, then your system is now ready for development.

@ -4,24 +4,10 @@
[![license](https://img.shields.io/badge/license-MIT-blue.svg)](/LICENSE)
[![pypi version](https://badge.fury.io/py/diagrams.svg)](https://badge.fury.io/py/diagrams)
![python version](https://img.shields.io/badge/python-3.6%2C3.7%2C3.8-blue?logo=python)
![python version](https://img.shields.io/badge/python-%3E%3D%203.6-blue?logo=python)
![Run tests](https://github.com/mingrammer/diagrams/workflows/Run%20tests/badge.svg?branch=master)
[![todos](https://badgen.net/https/api.tickgit.com/badgen/github.com/mingrammer/diagrams?label=todos)](https://www.tickgit.com/browse?repo=github.com/mingrammer/diagrams)
![on premise provider](https://img.shields.io/badge/provider-OnPremise-orange?color=5f87bf)
![aws provider](https://img.shields.io/badge/provider-AWS-orange?logo=amazon-aws&color=ff9900)
![azure provider](https://img.shields.io/badge/provider-Azure-orange?logo=microsoft-azure&color=0089d6)
![gcp provider](https://img.shields.io/badge/provider-GCP-orange?logo=google-cloud&color=4285f4)
![kubernetes provider](https://img.shields.io/badge/provider-Kubernetes-orange?logo=kubernetes&color=326ce5)
![alibaba cloud provider](https://img.shields.io/badge/provider-AlibabaCloud-orange)
![oracle cloud provider](https://img.shields.io/badge/provider-OracleCloud-orange?logo=oracle&color=f80000)
![openstack provider](https://img.shields.io/badge/provider-OpenStack-orange?logo=openstack&color=da1a32)
![firebase provider](https://img.shields.io/badge/provider-Firebase-orange?logo=firebase&color=FFCA28)
![outscale provider](https://img.shields.io/badge/provider-OutScale-orange?color=5f87bf)
![elastic provider](https://img.shields.io/badge/provider-Elastic-orange?logo=elastic&color=005571)
![generic provider](https://img.shields.io/badge/provider-Generic-orange?color=5f87bf)
![programming provider](https://img.shields.io/badge/provider-Programming-orange?color=5f87bf)
![saas provider](https://img.shields.io/badge/provider-SaaS-orange?color=5f87bf)
![contributors](https://img.shields.io/github/contributors/mingrammer/diagrams)
<a href="https://www.buymeacoffee.com/mingrammer" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a>
@ -33,6 +19,25 @@ Diagrams lets you draw the cloud system architecture **in Python code**. It was
> NOTE: It does not control any actual cloud resources nor does it generate cloud formation or terraform code. It is just for drawing the cloud system architecture diagrams.
## Providers
![aws provider](https://img.shields.io/badge/AWS-orange?logo=amazon-aws&color=ff9900)
![azure provider](https://img.shields.io/badge/Azure-orange?logo=microsoft-azure&color=0089d6)
![gcp provider](https://img.shields.io/badge/GCP-orange?logo=google-cloud&color=4285f4)
![ibm provider](https://img.shields.io/badge/IBM-orange?logo=ibm&color=052FAD)
![kubernetes provider](https://img.shields.io/badge/Kubernetes-orange?logo=kubernetes&color=326ce5)
![alibaba cloud provider](https://img.shields.io/badge/AlibabaCloud-orange?logo=alibaba-cloud&color=ff6a00)
![oracle cloud provider](https://img.shields.io/badge/OracleCloud-orange?logo=oracle&color=f80000)
![openstack provider](https://img.shields.io/badge/OpenStack-orange?logo=openstack&color=da1a32)
![firebase provider](https://img.shields.io/badge/Firebase-orange?logo=firebase&color=FFCA28)
![digital ocean provider](https://img.shields.io/badge/DigitalOcean-0080ff?logo=digitalocean&color=0080ff)
![elastic provider](https://img.shields.io/badge/Elastic-orange?logo=elastic&color=005571)
![outscale provider](https://img.shields.io/badge/OutScale-orange?color=5f87bf)
![on premise provider](https://img.shields.io/badge/OnPremise-orange?color=5f87bf)
![generic provider](https://img.shields.io/badge/Generic-orange?color=5f87bf)
![programming provider](https://img.shields.io/badge/Programming-orange?color=5f87bf)
![saas provider](https://img.shields.io/badge/SaaS-orange?color=5f87bf)
## Getting Started
It requires **Python 3.6** or higher, check your Python version first.
@ -70,11 +75,9 @@ To contribute to diagram, check out [contribution guidelines](CONTRIBUTING.md).
## Who uses it?
[![GitPitch](https://gitpitch.com/gpimg/logo.png)](https://gitpitch.com/)
[GitPitch](https://gitpitch.com/) is the perfect slide deck solution for Tech Conferences, Training, Developer Advocates, and Educators. Diagrams is now available as a dedicated [Cloud Diagram Markdown Widget](https://docs.gitpitch.com/#/diagrams/cloud-architecture) so you can use Diagrams directly on any slide for conferences, meetups, and training.
[GitPitch](https://gitpitch.github.io/gitpitch) is the perfect slide deck solution for Tech Conferences, Training, Developer Advocates, and Educators. Diagrams is now available as a dedicated [Cloud Diagram Markdown Widget](https://gitpitch.github.io/gitpitch/#/diagrams/cloud-architecture) so you can use Diagrams directly on any slide for conferences, meetups, and training.
[Cloudiscovery](https://github.com/Cloud-Architects/cloudiscovery) helps you to analyze resources in your cloud (AWS/GCP/Azure/Alibaba/IBM) account. It allows you to create a diagram of analyzed cloud resource map based on this Diagrams library, so you can draw the your existing cloud infrastructure with Cloudicovery.
[Cloudiscovery](https://github.com/Cloud-Architects/cloudiscovery) helps you to analyze resources in your cloud (AWS/GCP/Azure/Alibaba/IBM) account. It allows you to create a diagram of analyzed cloud resource map based on this Diagrams library, so you can draw your existing cloud infrastructure with Cloudiscovery.
[Airflow Diagrams](https://github.com/feluelle/airflow-diagrams) is an Airflow plugin that aims to easily visualise your Airflow DAGs on service level from providers like AWS, GCP, Azure, etc. via diagrams.

@ -4,7 +4,7 @@ set -e
app_root_dir="diagrams"
# NOTE: azure icon set is not latest version
providers=("onprem" "aws" "azure" "gcp" "firebase" "k8s" "alibabacloud" "oci" "programming" "saas" "elastic" "generic" "openstack" "outscale" )
providers=("onprem" "aws" "azure" "digitalocean" "gcp" "ibm" "firebase" "k8s" "alibabacloud" "oci" "programming" "saas" "elastic" "generic" "openstack" "outscale" )
if ! [ -x "$(command -v round)" ]; then
echo 'round is not installed'
@ -33,7 +33,7 @@ for pvd in "${providers[@]}"; do
echo "converting the svg to png using inkscape for provider '$pvd'"
python -m scripts.resource svg2png "$pvd"
fi
if [ "$pvd" == "oci" ]; then
if [ "$pvd" == "oci" ] || [ "$pvd" = "ibm" ]; then
echo "converting the svg to png using image magick for provider '$pvd'"
python -m scripts.resource svg2png2 "$pvd"
fi

@ -12,8 +12,8 @@ DIR_RESOURCE = "resources"
DIR_TEMPLATE = "templates"
PROVIDERS = (
"base", "onprem", "aws", "azure", "gcp", "firebase", "k8s", "alibabacloud", "oci", "programming", "saas", "elastic",
"generic", "openstack", "outscale")
"base", "onprem", "aws", "azure", "digitalocean", "gcp", "ibm", "firebase", "k8s", "alibabacloud", "oci",
"programming", "saas", "elastic", "generic", "openstack", "outscale")
#########################
# Resource Processing #
@ -30,8 +30,10 @@ FILE_PREFIXES = {
"onprem": (),
"aws": ("Amazon-", "AWS-"),
"azure": ("Azure-",),
"digitalocean": (),
"gcp": ("Cloud-",),
"firebase": ("Cloud-",),
"ibm": (),
"k8s": (),
"alibabacloud": (),
"oci": ("OCI-icon-",),
@ -57,7 +59,7 @@ TMPL_MODULE = "module.tmpl"
UPPER_WORDS = {
"aws": ("aws", "api", "ebs", "ec2", "efs", "emr", "rds", "ml", "mq", "nat", "vpc", "waf", "sdk"),
"azure": ("ad", "b2c", "ai", "api", "cdn", "ddos", "dns", "fxt", "hana", "hd", "id", "sap", "sql", "vm"),
"azure": ("ad", "b2c", "ai", "api", "cdn", "ddos", "dns", "fxt", "hana", "hd", "id", "sap", "sql", "vm", "vpn", "vpc"),
"gcp": ("gcp", "ai", "api", "cdn", "dns", "gke", "gpu", "iap", "ml", "nat", "os", "sdk", "sql", "tpu", "vpn"),
"firebase": ("ab", "fcm", "ml"),
"k8s": (
@ -70,6 +72,7 @@ UPPER_WORDS = {
"outscale": ("osc",),
"openstack": ("rpm", "loci", "nfv", "ec2api"),
"pve": ("pve"),
"ibm": ("ibm"),
}
TITLE_WORDS = {
@ -82,9 +85,15 @@ TITLE_WORDS = {
"aws": {
"cloudfront": "CloudFront"
},
"digitalocean": {
"digitalocean": "DigitalOcean"
},
"openstack": {
"openstack": "OpenStack"
},
"ibm": {
"ibm": "IBMCloud"
},
}
# TODO: check if the classname exists
@ -163,6 +172,7 @@ ALIASES = {
},
"compute": {
"ApplicationAutoScaling": "AutoScaling",
"EC2Ami": "AMI",
"EC2ContainerRegistry": "ECR",
"ElasticBeanstalk": "EB",
"ElasticContainerService": "ECS",
@ -215,6 +225,9 @@ ALIASES = {
"network": {
"CloudFront": "CF",
"ElasticLoadBalancing": "ELB",
"ElbApplicationLoadBalancer": "ALB",
"ElbClassicLoadBalancer": "CLB",
"ElbNetworkLoadBalancer": "NLB",
"GlobalAccelerator": "GAX",
},
"security": {
@ -377,6 +390,7 @@ ALIASES = {
"ObjectTableStore": "OTS",
}
},
"digitalocean": {},
"oci": {
"compute": {
"VM": "VirtualMachine",
@ -389,10 +403,10 @@ ALIASES = {
"OKEWhite": "ContainerEngineWhite",
},
"database": {
"AutonomousDatabase": "ADB",
"AutonomousDatabaseWhite": "ADBWhite",
"Databaseservice": "DBService",
"DatabaseserviceWhite": "DBServiceWhite",
"Autonomous": "ADB",
"AutonomousWhite": "ADBWhite",
"DatabaseService": "DBService",
"DatabaseServiceWhite": "DBServiceWhite",
}
},
"programming": {
@ -420,6 +434,7 @@ ALIASES = {
"outscale": {
"Osc": "OSC",
},
"ibm": {},
"generic": {},
"openstack": {
"user": {

@ -104,7 +104,7 @@ class Diagram:
"""
self.name = name
if not name and not filename:
filename = "diagrams_image"
filename = "diagrams_image"
elif not filename:
filename = "_".join(self.name.split()).lower()
self.filename = filename
@ -211,7 +211,10 @@ class Cluster:
# Cluster direction does not work now. Graphviz couldn't render
# correctly for a subgraph that has a different rank direction.
def __init__(
self, label: str = "cluster", direction: str = "LR", graph_attr: dict = {},
self,
label: str = "cluster",
direction: str = "LR",
graph_attr: dict = {},
):
"""Cluster represents a cluster context.
@ -403,8 +406,8 @@ class Node:
"""
if not isinstance(node, Node):
ValueError(f"{node} is not a valid Node")
if not isinstance(node, Edge):
ValueError(f"{node} is not a valid Edge")
if not isinstance(edge, Edge):
ValueError(f"{edge} is not a valid Edge")
# An edge must be added on the global diagrams, not a cluster.
self._diagram.connect(self, node, edge)
return node

@ -24,6 +24,10 @@ class Cloudsearch(_Analytics):
_icon = "cloudsearch.png"
class DataLakeResource(_Analytics):
_icon = "data-lake-resource.png"
class DataPipeline(_Analytics):
_icon = "data-pipeline.png"
@ -36,6 +40,22 @@ class EMRCluster(_Analytics):
_icon = "emr-cluster.png"
class EMREngineMaprM3(_Analytics):
_icon = "emr-engine-mapr-m3.png"
class EMREngineMaprM5(_Analytics):
_icon = "emr-engine-mapr-m5.png"
class EMREngineMaprM7(_Analytics):
_icon = "emr-engine-mapr-m7.png"
class EMREngine(_Analytics):
_icon = "emr-engine.png"
class EMRHdfsCluster(_Analytics):
_icon = "emr-hdfs-cluster.png"

@ -8,6 +8,10 @@ class _Ar(_AWS):
_icon_dir = "resources/aws/ar"
class ArVr(_Ar):
_icon = "ar-vr.png"
class Sumerian(_Ar):
_icon = "sumerian.png"

@ -8,6 +8,14 @@ class _Blockchain(_AWS):
_icon_dir = "resources/aws/blockchain"
class BlockchainResource(_Blockchain):
_icon = "blockchain-resource.png"
class Blockchain(_Blockchain):
_icon = "blockchain.png"
class ManagedBlockchain(_Blockchain):
_icon = "managed-blockchain.png"

@ -12,6 +12,10 @@ class AlexaForBusiness(_Business):
_icon = "alexa-for-business.png"
class BusinessApplications(_Business):
_icon = "business-applications.png"
class Chime(_Business):
_icon = "chime.png"

@ -16,22 +16,82 @@ class Batch(_Compute):
_icon = "batch.png"
class ComputeOptimizer(_Compute):
_icon = "compute-optimizer.png"
class Compute(_Compute):
_icon = "compute.png"
class EC2Ami(_Compute):
_icon = "ec2-ami.png"
class EC2AutoScaling(_Compute):
_icon = "ec2-auto-scaling.png"
class EC2ContainerRegistryImage(_Compute):
_icon = "ec2-container-registry-image.png"
class EC2ContainerRegistryRegistry(_Compute):
_icon = "ec2-container-registry-registry.png"
class EC2ContainerRegistry(_Compute):
_icon = "ec2-container-registry.png"
class EC2ElasticIpAddress(_Compute):
_icon = "ec2-elastic-ip-address.png"
class EC2ImageBuilder(_Compute):
_icon = "ec2-image-builder.png"
class EC2Instance(_Compute):
_icon = "ec2-instance.png"
class EC2Instances(_Compute):
_icon = "ec2-instances.png"
class EC2Rescue(_Compute):
_icon = "ec2-rescue.png"
class EC2SpotInstance(_Compute):
_icon = "ec2-spot-instance.png"
class EC2(_Compute):
_icon = "ec2.png"
class ElasticBeanstalkApplication(_Compute):
_icon = "elastic-beanstalk-application.png"
class ElasticBeanstalkDeployment(_Compute):
_icon = "elastic-beanstalk-deployment.png"
class ElasticBeanstalk(_Compute):
_icon = "elastic-beanstalk.png"
class ElasticContainerServiceContainer(_Compute):
_icon = "elastic-container-service-container.png"
class ElasticContainerServiceService(_Compute):
_icon = "elastic-container-service-service.png"
class ElasticContainerService(_Compute):
_icon = "elastic-container-service.png"
@ -44,6 +104,10 @@ class Fargate(_Compute):
_icon = "fargate.png"
class LambdaFunction(_Compute):
_icon = "lambda-function.png"
class Lambda(_Compute):
_icon = "lambda.png"
@ -52,6 +116,10 @@ class Lightsail(_Compute):
_icon = "lightsail.png"
class LocalZones(_Compute):
_icon = "local-zones.png"
class Outposts(_Compute):
_icon = "outposts.png"
@ -92,9 +160,14 @@ class VmwareCloudOnAWS(_Compute):
_icon = "vmware-cloud-on-aws.png"
class Wavelength(_Compute):
_icon = "wavelength.png"
# Aliases
AutoScaling = ApplicationAutoScaling
AMI = EC2Ami
ECR = EC2ContainerRegistry
EB = ElasticBeanstalk
ECS = ElasticContainerService

@ -20,6 +20,10 @@ class CostExplorer(_Cost):
_icon = "cost-explorer.png"
class CostManagement(_Cost):
_icon = "cost-management.png"
class ReservedInstanceReporting(_Cost):
_icon = "reserved-instance-reporting.png"

@ -8,10 +8,18 @@ class _Database(_AWS):
_icon_dir = "resources/aws/database"
class AuroraInstance(_Database):
_icon = "aurora-instance.png"
class Aurora(_Database):
_icon = "aurora.png"
class DatabaseMigrationServiceDatabaseMigrationWorkflow(_Database):
_icon = "database-migration-service-database-migration-workflow.png"
class DatabaseMigrationService(_Database):
_icon = "database-migration-service.png"
@ -24,6 +32,14 @@ class DocumentdbMongodbCompatibility(_Database):
_icon = "documentdb-mongodb-compatibility.png"
class DynamodbAttribute(_Database):
_icon = "dynamodb-attribute.png"
class DynamodbAttributes(_Database):
_icon = "dynamodb-attributes.png"
class DynamodbDax(_Database):
_icon = "dynamodb-dax.png"
@ -32,6 +48,14 @@ class DynamodbGlobalSecondaryIndex(_Database):
_icon = "dynamodb-global-secondary-index.png"
class DynamodbItem(_Database):
_icon = "dynamodb-item.png"
class DynamodbItems(_Database):
_icon = "dynamodb-items.png"
class DynamodbTable(_Database):
_icon = "dynamodb-table.png"
@ -40,10 +64,26 @@ class Dynamodb(_Database):
_icon = "dynamodb.png"
class ElasticacheCacheNode(_Database):
_icon = "elasticache-cache-node.png"
class ElasticacheForMemcached(_Database):
_icon = "elasticache-for-memcached.png"
class ElasticacheForRedis(_Database):
_icon = "elasticache-for-redis.png"
class Elasticache(_Database):
_icon = "elasticache.png"
class KeyspacesManagedApacheCassandraService(_Database):
_icon = "keyspaces-managed-apache-cassandra-service.png"
class Neptune(_Database):
_icon = "neptune.png"
@ -52,14 +92,46 @@ class QuantumLedgerDatabaseQldb(_Database):
_icon = "quantum-ledger-database-qldb.png"
class RDSInstance(_Database):
_icon = "rds-instance.png"
class RDSMariadbInstance(_Database):
_icon = "rds-mariadb-instance.png"
class RDSMysqlInstance(_Database):
_icon = "rds-mysql-instance.png"
class RDSOnVmware(_Database):
_icon = "rds-on-vmware.png"
class RDSOracleInstance(_Database):
_icon = "rds-oracle-instance.png"
class RDSPostgresqlInstance(_Database):
_icon = "rds-postgresql-instance.png"
class RDSSqlServerInstance(_Database):
_icon = "rds-sql-server-instance.png"
class RDS(_Database):
_icon = "rds.png"
class RedshiftDenseComputeNode(_Database):
_icon = "redshift-dense-compute-node.png"
class RedshiftDenseStorageNode(_Database):
_icon = "redshift-dense-storage-node.png"
class Redshift(_Database):
_icon = "redshift.png"

@ -12,6 +12,10 @@ class CloudDevelopmentKit(_Devtools):
_icon = "cloud-development-kit.png"
class Cloud9Resource(_Devtools):
_icon = "cloud9-resource.png"
class Cloud9(_Devtools):
_icon = "cloud9.png"

@ -8,6 +8,10 @@ class _Enablement(_AWS):
_icon_dir = "resources/aws/enablement"
class CustomerEnablement(_Enablement):
_icon = "customer-enablement.png"
class Iq(_Enablement):
_icon = "iq.png"

@ -12,6 +12,10 @@ class Appstream20(_Enduser):
_icon = "appstream-2-0.png"
class DesktopAndAppStreaming(_Enduser):
_icon = "desktop-and-app-streaming.png"
class Workdocs(_Enduser):
_icon = "workdocs.png"

@ -12,10 +12,18 @@ class Connect(_Engagement):
_icon = "connect.png"
class CustomerEngagement(_Engagement):
_icon = "customer-engagement.png"
class Pinpoint(_Engagement):
_icon = "pinpoint.png"
class SimpleEmailServiceSesEmail(_Engagement):
_icon = "simple-email-service-ses-email.png"
class SimpleEmailServiceSes(_Engagement):
_icon = "simple-email-service-ses.png"

@ -8,6 +8,10 @@ class _Game(_AWS):
_icon_dir = "resources/aws/game"
class GameTech(_Game):
_icon = "game-tech.png"
class Gamelift(_Game):
_icon = "gamelift.png"

@ -8,10 +8,18 @@ class _General(_AWS):
_icon_dir = "resources/aws/general"
class Client(_General):
_icon = "client.png"
class Disk(_General):
_icon = "disk.png"
class Forums(_General):
_icon = "forums.png"
class General(_General):
_icon = "general.png"
@ -36,10 +44,54 @@ class GenericSDK(_General):
_icon = "generic-sdk.png"
class InternetAlt1(_General):
_icon = "internet-alt1.png"
class InternetAlt2(_General):
_icon = "internet-alt2.png"
class InternetGateway(_General):
_icon = "internet-gateway.png"
class Marketplace(_General):
_icon = "marketplace.png"
class MobileClient(_General):
_icon = "mobile-client.png"
class Multimedia(_General):
_icon = "multimedia.png"
class OfficeBuilding(_General):
_icon = "office-building.png"
class SamlToken(_General):
_icon = "saml-token.png"
class SDK(_General):
_icon = "sdk.png"
class SslPadlock(_General):
_icon = "ssl-padlock.png"
class TapeStorage(_General):
_icon = "tape-storage.png"
class Toolkit(_General):
_icon = "toolkit.png"
class TraditionalServer(_General):
_icon = "traditional-server.png"

@ -20,18 +20,58 @@ class ConsoleMobileApplication(_Integration):
_icon = "console-mobile-application.png"
class EventResource(_Integration):
_icon = "event-resource.png"
class EventbridgeCustomEventBusResource(_Integration):
_icon = "eventbridge-custom-event-bus-resource.png"
class EventbridgeDefaultEventBusResource(_Integration):
_icon = "eventbridge-default-event-bus-resource.png"
class EventbridgeSaasPartnerEventBusResource(_Integration):
_icon = "eventbridge-saas-partner-event-bus-resource.png"
class Eventbridge(_Integration):
_icon = "eventbridge.png"
class ExpressWorkflows(_Integration):
_icon = "express-workflows.png"
class MQ(_Integration):
_icon = "mq.png"
class SimpleNotificationServiceSnsEmailNotification(_Integration):
_icon = "simple-notification-service-sns-email-notification.png"
class SimpleNotificationServiceSnsHttpNotification(_Integration):
_icon = "simple-notification-service-sns-http-notification.png"
class SimpleNotificationServiceSnsTopic(_Integration):
_icon = "simple-notification-service-sns-topic.png"
class SimpleNotificationServiceSns(_Integration):
_icon = "simple-notification-service-sns.png"
class SimpleQueueServiceSqsMessage(_Integration):
_icon = "simple-queue-service-sqs-message.png"
class SimpleQueueServiceSqsQueue(_Integration):
_icon = "simple-queue-service-sqs-queue.png"
class SimpleQueueServiceSqs(_Integration):
_icon = "simple-queue-service-sqs.png"

@ -24,18 +24,58 @@ class IotAction(_Iot):
_icon = "iot-action.png"
class IotActuator(_Iot):
_icon = "iot-actuator.png"
class IotAlexaEcho(_Iot):
_icon = "iot-alexa-echo.png"
class IotAlexaEnabledDevice(_Iot):
_icon = "iot-alexa-enabled-device.png"
class IotAlexaSkill(_Iot):
_icon = "iot-alexa-skill.png"
class IotAlexaVoiceService(_Iot):
_icon = "iot-alexa-voice-service.png"
class IotAnalyticsChannel(_Iot):
_icon = "iot-analytics-channel.png"
class IotAnalyticsDataSet(_Iot):
_icon = "iot-analytics-data-set.png"
class IotAnalyticsDataStore(_Iot):
_icon = "iot-analytics-data-store.png"
class IotAnalyticsNotebook(_Iot):
_icon = "iot-analytics-notebook.png"
class IotAnalyticsPipeline(_Iot):
_icon = "iot-analytics-pipeline.png"
class IotAnalytics(_Iot):
_icon = "iot-analytics.png"
class IotBank(_Iot):
_icon = "iot-bank.png"
class IotBicycle(_Iot):
_icon = "iot-bicycle.png"
class IotButton(_Iot):
_icon = "iot-button.png"
@ -44,26 +84,66 @@ class IotCamera(_Iot):
_icon = "iot-camera.png"
class IotCar(_Iot):
_icon = "iot-car.png"
class IotCart(_Iot):
_icon = "iot-cart.png"
class IotCertificate(_Iot):
_icon = "iot-certificate.png"
class IotCoffeePot(_Iot):
_icon = "iot-coffee-pot.png"
class IotCore(_Iot):
_icon = "iot-core.png"
class IotDesiredState(_Iot):
_icon = "iot-desired-state.png"
class IotDeviceDefender(_Iot):
_icon = "iot-device-defender.png"
class IotDeviceGateway(_Iot):
_icon = "iot-device-gateway.png"
class IotDeviceManagement(_Iot):
_icon = "iot-device-management.png"
class IotDoorLock(_Iot):
_icon = "iot-door-lock.png"
class IotEvents(_Iot):
_icon = "iot-events.png"
class IotFactory(_Iot):
_icon = "iot-factory.png"
class IotFireTvStick(_Iot):
_icon = "iot-fire-tv-stick.png"
class IotFireTv(_Iot):
_icon = "iot-fire-tv.png"
class IotGeneric(_Iot):
_icon = "iot-generic.png"
class IotGreengrassConnector(_Iot):
_icon = "iot-greengrass-connector.png"
@ -76,6 +156,10 @@ class IotHardwareBoard(_Iot):
_icon = "iot-hardware-board.png"
class IotHouse(_Iot):
_icon = "iot-house.png"
class IotHttp(_Iot):
_icon = "iot-http.png"
@ -92,10 +176,22 @@ class IotLambda(_Iot):
_icon = "iot-lambda.png"
class IotLightbulb(_Iot):
_icon = "iot-lightbulb.png"
class IotMedicalEmergency(_Iot):
_icon = "iot-medical-emergency.png"
class IotMqtt(_Iot):
_icon = "iot-mqtt.png"
class IotOverTheAirUpdate(_Iot):
_icon = "iot-over-the-air-update.png"
class IotPolicyEmergency(_Iot):
_icon = "iot-policy-emergency.png"
@ -104,18 +200,38 @@ class IotPolicy(_Iot):
_icon = "iot-policy.png"
class IotReportedState(_Iot):
_icon = "iot-reported-state.png"
class IotRule(_Iot):
_icon = "iot-rule.png"
class IotSensor(_Iot):
_icon = "iot-sensor.png"
class IotServo(_Iot):
_icon = "iot-servo.png"
class IotShadow(_Iot):
_icon = "iot-shadow.png"
class IotSimulator(_Iot):
_icon = "iot-simulator.png"
class IotSitewise(_Iot):
_icon = "iot-sitewise.png"
class IotThermostat(_Iot):
_icon = "iot-thermostat.png"
class IotThingsGraph(_Iot):
_icon = "iot-things-graph.png"
@ -124,6 +240,18 @@ class IotTopic(_Iot):
_icon = "iot-topic.png"
class IotTravel(_Iot):
_icon = "iot-travel.png"
class IotUtility(_Iot):
_icon = "iot-utility.png"
class IotWindfarm(_Iot):
_icon = "iot-windfarm.png"
# Aliases
FreeRTOS = Freertos

@ -12,6 +12,22 @@ class AutoScaling(_Management):
_icon = "auto-scaling.png"
class Chatbot(_Management):
_icon = "chatbot.png"
class CloudformationChangeSet(_Management):
_icon = "cloudformation-change-set.png"
class CloudformationStack(_Management):
_icon = "cloudformation-stack.png"
class CloudformationTemplate(_Management):
_icon = "cloudformation-template.png"
class Cloudformation(_Management):
_icon = "cloudformation.png"
@ -20,6 +36,22 @@ class Cloudtrail(_Management):
_icon = "cloudtrail.png"
class CloudwatchAlarm(_Management):
_icon = "cloudwatch-alarm.png"
class CloudwatchEventEventBased(_Management):
_icon = "cloudwatch-event-event-based.png"
class CloudwatchEventTimeBased(_Management):
_icon = "cloudwatch-event-time-based.png"
class CloudwatchRule(_Management):
_icon = "cloudwatch-rule.png"
class Cloudwatch(_Management):
_icon = "cloudwatch.png"
@ -48,30 +80,130 @@ class ManagedServices(_Management):
_icon = "managed-services.png"
class ManagementAndGovernance(_Management):
_icon = "management-and-governance.png"
class ManagementConsole(_Management):
_icon = "management-console.png"
class OpsworksApps(_Management):
_icon = "opsworks-apps.png"
class OpsworksDeployments(_Management):
_icon = "opsworks-deployments.png"
class OpsworksInstances(_Management):
_icon = "opsworks-instances.png"
class OpsworksLayers(_Management):
_icon = "opsworks-layers.png"
class OpsworksMonitoring(_Management):
_icon = "opsworks-monitoring.png"
class OpsworksPermissions(_Management):
_icon = "opsworks-permissions.png"
class OpsworksResources(_Management):
_icon = "opsworks-resources.png"
class OpsworksStack(_Management):
_icon = "opsworks-stack.png"
class Opsworks(_Management):
_icon = "opsworks.png"
class OrganizationsAccount(_Management):
_icon = "organizations-account.png"
class OrganizationsOrganizationalUnit(_Management):
_icon = "organizations-organizational-unit.png"
class Organizations(_Management):
_icon = "organizations.png"
class PersonalHealthDashboard(_Management):
_icon = "personal-health-dashboard.png"
class ServiceCatalog(_Management):
_icon = "service-catalog.png"
class SystemsManagerAutomation(_Management):
_icon = "systems-manager-automation.png"
class SystemsManagerDocuments(_Management):
_icon = "systems-manager-documents.png"
class SystemsManagerInventory(_Management):
_icon = "systems-manager-inventory.png"
class SystemsManagerMaintenanceWindows(_Management):
_icon = "systems-manager-maintenance-windows.png"
class SystemsManagerOpscenter(_Management):
_icon = "systems-manager-opscenter.png"
class SystemsManagerParameterStore(_Management):
_icon = "systems-manager-parameter-store.png"
class SystemsManagerPatchManager(_Management):
_icon = "systems-manager-patch-manager.png"
class SystemsManagerRunCommand(_Management):
_icon = "systems-manager-run-command.png"
class SystemsManagerStateManager(_Management):
_icon = "systems-manager-state-manager.png"
class SystemsManager(_Management):
_icon = "systems-manager.png"
class TrustedAdvisorChecklistCost(_Management):
_icon = "trusted-advisor-checklist-cost.png"
class TrustedAdvisorChecklistFaultTolerant(_Management):
_icon = "trusted-advisor-checklist-fault-tolerant.png"
class TrustedAdvisorChecklistPerformance(_Management):
_icon = "trusted-advisor-checklist-performance.png"
class TrustedAdvisorChecklistSecurity(_Management):
_icon = "trusted-advisor-checklist-security.png"
class TrustedAdvisorChecklist(_Management):
_icon = "trusted-advisor-checklist.png"
class TrustedAdvisor(_Management):
_icon = "trusted-advisor.png"

@ -52,4 +52,12 @@ class ElementalServer(_Media):
_icon = "elemental-server.png"
class KinesisVideoStreams(_Media):
_icon = "kinesis-video-streams.png"
class MediaServices(_Media):
_icon = "media-services.png"
# Aliases

@ -20,6 +20,10 @@ class DatabaseMigrationService(_Migration):
_icon = "database-migration-service.png"
class DatasyncAgent(_Migration):
_icon = "datasync-agent.png"
class Datasync(_Migration):
_icon = "datasync.png"

@ -12,6 +12,10 @@ class ApacheMxnetOnAWS(_ML):
_icon = "apache-mxnet-on-aws.png"
class AugmentedAi(_ML):
_icon = "augmented-ai.png"
class Comprehend(_ML):
_icon = "comprehend.png"
@ -24,6 +28,10 @@ class DeepLearningContainers(_ML):
_icon = "deep-learning-containers.png"
class Deepcomposer(_ML):
_icon = "deepcomposer.png"
class Deeplens(_ML):
_icon = "deeplens.png"
@ -40,6 +48,14 @@ class Forecast(_ML):
_icon = "forecast.png"
class FraudDetector(_ML):
_icon = "fraud-detector.png"
class Kendra(_ML):
_icon = "kendra.png"
class Lex(_ML):
_icon = "lex.png"
@ -56,6 +72,14 @@ class Polly(_ML):
_icon = "polly.png"
class RekognitionImage(_ML):
_icon = "rekognition-image.png"
class RekognitionVideo(_ML):
_icon = "rekognition-video.png"
class Rekognition(_ML):
_icon = "rekognition.png"

@ -28,6 +28,10 @@ class DeviceFarm(_Mobile):
_icon = "device-farm.png"
class Mobile(_Mobile):
_icon = "mobile.png"
class Pinpoint(_Mobile):
_icon = "pinpoint.png"

@ -8,6 +8,10 @@ class _Network(_AWS):
_icon_dir = "resources/aws/network"
class APIGatewayEndpoint(_Network):
_icon = "api-gateway-endpoint.png"
class APIGateway(_Network):
_icon = "api-gateway.png"
@ -24,6 +28,18 @@ class CloudMap(_Network):
_icon = "cloud-map.png"
class CloudFrontDownloadDistribution(_Network):
_icon = "cloudfront-download-distribution.png"
class CloudFrontEdgeLocation(_Network):
_icon = "cloudfront-edge-location.png"
class CloudFrontStreamingDistribution(_Network):
_icon = "cloudfront-streaming-distribution.png"
class CloudFront(_Network):
_icon = "cloudfront.png"
@ -36,6 +52,18 @@ class ElasticLoadBalancing(_Network):
_icon = "elastic-load-balancing.png"
class ElbApplicationLoadBalancer(_Network):
_icon = "elb-application-load-balancer.png"
class ElbClassicLoadBalancer(_Network):
_icon = "elb-classic-load-balancer.png"
class ElbNetworkLoadBalancer(_Network):
_icon = "elb-network-load-balancer.png"
class Endpoint(_Network):
_icon = "endpoint.png"
@ -72,6 +100,10 @@ class PublicSubnet(_Network):
_icon = "public-subnet.png"
class Route53HostedZone(_Network):
_icon = "route-53-hosted-zone.png"
class Route53(_Network):
_icon = "route-53.png"
@ -88,6 +120,22 @@ class TransitGateway(_Network):
_icon = "transit-gateway.png"
class VPCCustomerGateway(_Network):
_icon = "vpc-customer-gateway.png"
class VPCElasticNetworkAdapter(_Network):
_icon = "vpc-elastic-network-adapter.png"
class VPCElasticNetworkInterface(_Network):
_icon = "vpc-elastic-network-interface.png"
class VPCFlowLogs(_Network):
_icon = "vpc-flow-logs.png"
class VPCPeering(_Network):
_icon = "vpc-peering.png"
@ -96,12 +144,27 @@ class VPCRouter(_Network):
_icon = "vpc-router.png"
class VPCTrafficMirroring(_Network):
_icon = "vpc-traffic-mirroring.png"
class VPC(_Network):
_icon = "vpc.png"
class VpnConnection(_Network):
_icon = "vpn-connection.png"
class VpnGateway(_Network):
_icon = "vpn-gateway.png"
# Aliases
CF = CloudFront
ELB = ElasticLoadBalancing
ALB = ElbApplicationLoadBalancer
CLB = ElbClassicLoadBalancer
NLB = ElbNetworkLoadBalancer
GAX = GlobalAccelerator

@ -12,4 +12,8 @@ class Braket(_Quantum):
_icon = "braket.png"
class QuantumTechnologies(_Quantum):
_icon = "quantum-technologies.png"
# Aliases

@ -8,6 +8,18 @@ class _Robotics(_AWS):
_icon_dir = "resources/aws/robotics"
class RobomakerCloudExtensionRos(_Robotics):
_icon = "robomaker-cloud-extension-ros.png"
class RobomakerDevelopmentEnvironment(_Robotics):
_icon = "robomaker-development-environment.png"
class RobomakerFleetManagement(_Robotics):
_icon = "robomaker-fleet-management.png"
class RobomakerSimulator(_Robotics):
_icon = "robomaker-simulator.png"

@ -12,4 +12,8 @@ class GroundStation(_Satellite):
_icon = "ground-station.png"
class Satellite(_Satellite):
_icon = "satellite.png"
# Aliases

@ -8,10 +8,18 @@ class _Security(_AWS):
_icon_dir = "resources/aws/security"
class AdConnector(_Security):
_icon = "ad-connector.png"
class Artifact(_Security):
_icon = "artifact.png"
class CertificateAuthority(_Security):
_icon = "certificate-authority.png"
class CertificateManager(_Security):
_icon = "certificate-manager.png"
@ -48,10 +56,34 @@ class IdentityAndAccessManagementIamAccessAnalyzer(_Security):
_icon = "identity-and-access-management-iam-access-analyzer.png"
class IdentityAndAccessManagementIamAddOn(_Security):
_icon = "identity-and-access-management-iam-add-on.png"
class IdentityAndAccessManagementIamAWSStsAlternate(_Security):
_icon = "identity-and-access-management-iam-aws-sts-alternate.png"
class IdentityAndAccessManagementIamAWSSts(_Security):
_icon = "identity-and-access-management-iam-aws-sts.png"
class IdentityAndAccessManagementIamDataEncryptionKey(_Security):
_icon = "identity-and-access-management-iam-data-encryption-key.png"
class IdentityAndAccessManagementIamEncryptedData(_Security):
_icon = "identity-and-access-management-iam-encrypted-data.png"
class IdentityAndAccessManagementIamLongTermSecurityCredential(_Security):
_icon = "identity-and-access-management-iam-long-term-security-credential.png"
class IdentityAndAccessManagementIamMfaToken(_Security):
_icon = "identity-and-access-management-iam-mfa-token.png"
class IdentityAndAccessManagementIamPermissions(_Security):
_icon = "identity-and-access-management-iam-permissions.png"
@ -60,10 +92,18 @@ class IdentityAndAccessManagementIamRole(_Security):
_icon = "identity-and-access-management-iam-role.png"
class IdentityAndAccessManagementIamTemporarySecurityCredential(_Security):
_icon = "identity-and-access-management-iam-temporary-security-credential.png"
class IdentityAndAccessManagementIam(_Security):
_icon = "identity-and-access-management-iam.png"
class InspectorAgent(_Security):
_icon = "inspector-agent.png"
class Inspector(_Security):
_icon = "inspector.png"
@ -76,6 +116,10 @@ class Macie(_Security):
_icon = "macie.png"
class ManagedMicrosoftAd(_Security):
_icon = "managed-microsoft-ad.png"
class ResourceAccessManager(_Security):
_icon = "resource-access-manager.png"
@ -84,6 +128,10 @@ class SecretsManager(_Security):
_icon = "secrets-manager.png"
class SecurityHubFinding(_Security):
_icon = "security-hub-finding.png"
class SecurityHub(_Security):
_icon = "security-hub.png"
@ -92,14 +140,26 @@ class SecurityIdentityAndCompliance(_Security):
_icon = "security-identity-and-compliance.png"
class ShieldAdvanced(_Security):
_icon = "shield-advanced.png"
class Shield(_Security):
_icon = "shield.png"
class SimpleAd(_Security):
_icon = "simple-ad.png"
class SingleSignOn(_Security):
_icon = "single-sign-on.png"
class WAFFilteringRule(_Security):
_icon = "waf-filtering-rule.png"
class WAF(_Security):
_icon = "waf.png"

@ -24,10 +24,22 @@ class EFSStandardPrimaryBg(_Storage):
_icon = "efs-standard-primary-bg.png"
class ElasticBlockStoreEBSSnapshot(_Storage):
_icon = "elastic-block-store-ebs-snapshot.png"
class ElasticBlockStoreEBSVolume(_Storage):
_icon = "elastic-block-store-ebs-volume.png"
class ElasticBlockStoreEBS(_Storage):
_icon = "elastic-block-store-ebs.png"
class ElasticFileSystemEFSFileSystem(_Storage):
_icon = "elastic-file-system-efs-file-system.png"
class ElasticFileSystemEFS(_Storage):
_icon = "elastic-file-system-efs.png"
@ -44,14 +56,42 @@ class Fsx(_Storage):
_icon = "fsx.png"
class MultipleVolumesResource(_Storage):
_icon = "multiple-volumes-resource.png"
class S3GlacierArchive(_Storage):
_icon = "s3-glacier-archive.png"
class S3GlacierVault(_Storage):
_icon = "s3-glacier-vault.png"
class S3Glacier(_Storage):
_icon = "s3-glacier.png"
class SimpleStorageServiceS3BucketWithObjects(_Storage):
_icon = "simple-storage-service-s3-bucket-with-objects.png"
class SimpleStorageServiceS3Bucket(_Storage):
_icon = "simple-storage-service-s3-bucket.png"
class SimpleStorageServiceS3Object(_Storage):
_icon = "simple-storage-service-s3-object.png"
class SimpleStorageServiceS3(_Storage):
_icon = "simple-storage-service-s3.png"
class SnowFamilySnowballImportExport(_Storage):
_icon = "snow-family-snowball-import-export.png"
class SnowballEdge(_Storage):
_icon = "snowball-edge.png"
@ -64,6 +104,18 @@ class Snowmobile(_Storage):
_icon = "snowmobile.png"
class StorageGatewayCachedVolume(_Storage):
_icon = "storage-gateway-cached-volume.png"
class StorageGatewayNonCachedVolume(_Storage):
_icon = "storage-gateway-non-cached-volume.png"
class StorageGatewayVirtualTapeLibrary(_Storage):
_icon = "storage-gateway-virtual-tape-library.png"
class StorageGateway(_Storage):
_icon = "storage-gateway.png"

@ -52,4 +52,8 @@ class StreamAnalyticsJobs(_Analytics):
_icon = "stream-analytics-jobs.png"
class SynapseAnalytics(_Analytics):
_icon = "synapse-analytics.png"
# Aliases

@ -8,6 +8,14 @@ class _Compute(_Azure):
_icon_dir = "resources/azure/compute"
class AppServices(_Compute):
_icon = "app-services.png"
class AutomanagedVM(_Compute):
_icon = "automanaged-vm.png"
class AvailabilitySets(_Compute):
_icon = "availability-sets.png"
@ -40,6 +48,10 @@ class ContainerRegistries(_Compute):
_icon = "container-registries.png"
class DiskEncryptionSets(_Compute):
_icon = "disk-encryption-sets.png"
class DiskSnapshots(_Compute):
_icon = "disk-snapshots.png"
@ -52,6 +64,14 @@ class FunctionApps(_Compute):
_icon = "function-apps.png"
class ImageDefinitions(_Compute):
_icon = "image-definitions.png"
class ImageVersions(_Compute):
_icon = "image-versions.png"
class KubernetesServices(_Compute):
_icon = "kubernetes-services.png"
@ -60,6 +80,10 @@ class MeshApplications(_Compute):
_icon = "mesh-applications.png"
class OsImages(_Compute):
_icon = "os-images.png"
class SAPHANAOnAzure(_Compute):
_icon = "sap-hana-on-azure.png"
@ -68,6 +92,14 @@ class ServiceFabricClusters(_Compute):
_icon = "service-fabric-clusters.png"
class SharedImageGalleries(_Compute):
_icon = "shared-image-galleries.png"
class SpringCloud(_Compute):
_icon = "spring-cloud.png"
class VMClassic(_Compute):
_icon = "vm-classic.png"
@ -92,7 +124,12 @@ class VM(_Compute):
_icon = "vm.png"
class Workspaces(_Compute):
_icon = "workspaces.png"
# Aliases
ACR = ContainerRegistries
AKS = KubernetesServices
VMSS = VMScaleSet

@ -20,6 +20,14 @@ class CosmosDb(_Database):
_icon = "cosmos-db.png"
class DataExplorerClusters(_Database):
_icon = "data-explorer-clusters.png"
class DataFactory(_Database):
_icon = "data-factory.png"
class DataLake(_Database):
_icon = "data-lake.png"
@ -44,6 +52,10 @@ class ElasticJobAgents(_Database):
_icon = "elastic-job-agents.png"
class InstancePools(_Database):
_icon = "instance-pools.png"
class ManagedDatabases(_Database):
_icon = "managed-databases.png"
@ -68,6 +80,22 @@ class SQLServers(_Database):
_icon = "sql-servers.png"
class SQLVM(_Database):
_icon = "sql-vm.png"
class SQL(_Database):
_icon = "sql.png"
class SsisLiftAndShiftIr(_Database):
_icon = "ssis-lift-and-shift-ir.png"
class SynapseAnalytics(_Database):
_icon = "synapse-analytics.png"
class VirtualClusters(_Database):
_icon = "virtual-clusters.png"

@ -28,6 +28,10 @@ class DevtestLabs(_Devops):
_icon = "devtest-labs.png"
class LabServices(_Devops):
_icon = "lab-services.png"
class Pipelines(_Devops):
_icon = "pipelines.png"

@ -48,6 +48,10 @@ class EnterpriseApplications(_Identity):
_icon = "enterprise-applications.png"
class Groups(_Identity):
_icon = "groups.png"
class IdentityGovernance(_Identity):
_icon = "identity-governance.png"
@ -60,4 +64,8 @@ class ManagedIdentities(_Identity):
_icon = "managed-identities.png"
class Users(_Identity):
_icon = "users.png"
# Aliases

@ -52,6 +52,10 @@ class LogicApps(_Integration):
_icon = "logic-apps.png"
class PartnerTopic(_Integration):
_icon = "partner-topic.png"
class SendgridAccounts(_Integration):
_icon = "sendgrid-accounts.png"
@ -76,4 +80,8 @@ class StorsimpleDeviceManagers(_Integration):
_icon = "storsimple-device-managers.png"
class SystemTopic(_Integration):
_icon = "system-topic.png"
# Aliases

@ -8,6 +8,14 @@ class _Migration(_Azure):
_icon_dir = "resources/azure/migration"
class DataBoxEdge(_Migration):
_icon = "data-box-edge.png"
class DataBox(_Migration):
_icon = "data-box.png"
class DatabaseMigrationServices(_Migration):
_icon = "database-migration-services.png"

@ -9,7 +9,7 @@ class _Mobile(_Azure):
class AppServiceMobile(_Mobile):
_icon = "app-service---mobile.png"
_icon = "app-service-mobile.png"
class MobileEngagement(_Mobile):

@ -8,6 +8,22 @@ class _Security(_Azure):
_icon_dir = "resources/azure/security"
class ApplicationSecurityGroups(_Security):
_icon = "application-security-groups.png"
class ConditionalAccess(_Security):
_icon = "conditional-access.png"
class Defender(_Security):
_icon = "defender.png"
class ExtendedSecurityUpdates(_Security):
_icon = "extended-security-updates.png"
class KeyVaults(_Security):
_icon = "key-vaults.png"

@ -21,7 +21,7 @@ class BlobStorage(_Storage):
class DataBoxEdgeDataBoxGateway(_Storage):
_icon = "data-box-edge---data-box-gateway.png"
_icon = "data-box-edge-data-box-gateway.png"
class DataBox(_Storage):

@ -0,0 +1,43 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _DigitalOcean
class _Compute(_DigitalOcean):
_type = "compute"
_icon_dir = "resources/digitalocean/compute"
class Containers(_Compute):
_icon = "containers.png"
class Docker(_Compute):
_icon = "docker.png"
class DropletConnect(_Compute):
_icon = "droplet-connect.png"
class DropletSnapshot(_Compute):
_icon = "droplet-snapshot.png"
class Droplet(_Compute):
_icon = "droplet.png"
class K8SCluster(_Compute):
_icon = "k8s-cluster.png"
class K8SNodePool(_Compute):
_icon = "k8s-node-pool.png"
class K8SNode(_Compute):
_icon = "k8s-node.png"
# Aliases

@ -0,0 +1,27 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _DigitalOcean
class _Database(_DigitalOcean):
_type = "database"
_icon_dir = "resources/digitalocean/database"
class DbaasPrimaryStandbyMore(_Database):
_icon = "dbaas-primary-standby-more.png"
class DbaasPrimary(_Database):
_icon = "dbaas-primary.png"
class DbaasReadOnly(_Database):
_icon = "dbaas-read-only.png"
class DbaasStandby(_Database):
_icon = "dbaas-standby.png"
# Aliases

@ -0,0 +1,47 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _DigitalOcean
class _Network(_DigitalOcean):
_type = "network"
_icon_dir = "resources/digitalocean/network"
class Certificate(_Network):
_icon = "certificate.png"
class DomainRegistration(_Network):
_icon = "domain-registration.png"
class Domain(_Network):
_icon = "domain.png"
class Firewall(_Network):
_icon = "firewall.png"
class FloatingIp(_Network):
_icon = "floating-ip.png"
class InternetGateway(_Network):
_icon = "internet-gateway.png"
class LoadBalancer(_Network):
_icon = "load-balancer.png"
class ManagedVpn(_Network):
_icon = "managed-vpn.png"
class Vpc(_Network):
_icon = "vpc.png"
# Aliases

@ -0,0 +1,27 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _DigitalOcean
class _Storage(_DigitalOcean):
_type = "storage"
_icon_dir = "resources/digitalocean/storage"
class Folder(_Storage):
_icon = "folder.png"
class Space(_Storage):
_icon = "space.png"
class VolumeSnapshot(_Storage):
_icon = "volume-snapshot.png"
class Volume(_Storage):
_icon = "volume.png"
# Aliases

@ -8,6 +8,10 @@ class _API(_GCP):
_icon_dir = "resources/gcp/api"
class APIGateway(_API):
_icon = "api-gateway.png"
class Endpoints(_API):
_icon = "endpoints.png"

@ -0,0 +1,12 @@
"""
IBM provides a set of services for IBM Cloud provider.
"""
from diagrams import Node
class _IBM(Node):
_provider = "ibm"
_icon_dir = "resources/ibm"
fontcolor = "#ffffff"

@ -0,0 +1,31 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _IBM
class _Analytics(_IBM):
_type = "analytics"
_icon_dir = "resources/ibm/analytics"
class Analytics(_Analytics):
_icon = "analytics.png"
class DataIntegration(_Analytics):
_icon = "data-integration.png"
class DataRepositories(_Analytics):
_icon = "data-repositories.png"
class DeviceAnalytics(_Analytics):
_icon = "device-analytics.png"
class StreamingComputing(_Analytics):
_icon = "streaming-computing.png"
# Aliases

@ -0,0 +1,87 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _IBM
class _Applications(_IBM):
_type = "applications"
_icon_dir = "resources/ibm/applications"
class ActionableInsight(_Applications):
_icon = "actionable-insight.png"
class Annotate(_Applications):
_icon = "annotate.png"
class ApiDeveloperPortal(_Applications):
_icon = "api-developer-portal.png"
class ApiPolyglotRuntimes(_Applications):
_icon = "api-polyglot-runtimes.png"
class AppServer(_Applications):
_icon = "app-server.png"
class ApplicationLogic(_Applications):
_icon = "application-logic.png"
class EnterpriseApplications(_Applications):
_icon = "enterprise-applications.png"
class Index(_Applications):
_icon = "index.png"
class IotApplication(_Applications):
_icon = "iot-application.png"
class Microservice(_Applications):
_icon = "microservice.png"
class MobileApp(_Applications):
_icon = "mobile-app.png"
class Ontology(_Applications):
_icon = "ontology.png"
class OpenSourceTools(_Applications):
_icon = "open-source-tools.png"
class RuntimeServices(_Applications):
_icon = "runtime-services.png"
class SaasApplications(_Applications):
_icon = "saas-applications.png"
class ServiceBroker(_Applications):
_icon = "service-broker.png"
class SpeechToText(_Applications):
_icon = "speech-to-text.png"
class VisualRecognition(_Applications):
_icon = "visual-recognition.png"
class Visualization(_Applications):
_icon = "visualization.png"
# Aliases

@ -0,0 +1,91 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _IBM
class _Blockchain(_IBM):
_type = "blockchain"
_icon_dir = "resources/ibm/blockchain"
class BlockchainDeveloper(_Blockchain):
_icon = "blockchain-developer.png"
class Blockchain(_Blockchain):
_icon = "blockchain.png"
class CertificateAuthority(_Blockchain):
_icon = "certificate-authority.png"
class ClientApplication(_Blockchain):
_icon = "client-application.png"
class Communication(_Blockchain):
_icon = "communication.png"
class Consensus(_Blockchain):
_icon = "consensus.png"
class EventListener(_Blockchain):
_icon = "event-listener.png"
class Event(_Blockchain):
_icon = "event.png"
class ExistingEnterpriseSystems(_Blockchain):
_icon = "existing-enterprise-systems.png"
class HyperledgerFabric(_Blockchain):
_icon = "hyperledger-fabric.png"
class KeyManagement(_Blockchain):
_icon = "key-management.png"
class Ledger(_Blockchain):
_icon = "ledger.png"
class MembershipServicesProviderApi(_Blockchain):
_icon = "membership-services-provider-api.png"
class Membership(_Blockchain):
_icon = "membership.png"
class MessageBus(_Blockchain):
_icon = "message-bus.png"
class Node(_Blockchain):
_icon = "node.png"
class Services(_Blockchain):
_icon = "services.png"
class SmartContract(_Blockchain):
_icon = "smart-contract.png"
class TransactionManager(_Blockchain):
_icon = "transaction-manager.png"
class Wallet(_Blockchain):
_icon = "wallet.png"
# Aliases

@ -0,0 +1,31 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _IBM
class _Compute(_IBM):
_type = "compute"
_icon_dir = "resources/ibm/compute"
class BareMetalServer(_Compute):
_icon = "bare-metal-server.png"
class ImageService(_Compute):
_icon = "image-service.png"
class Instance(_Compute):
_icon = "instance.png"
class Key(_Compute):
_icon = "key.png"
class PowerInstance(_Compute):
_icon = "power-instance.png"
# Aliases

@ -0,0 +1,63 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _IBM
class _Data(_IBM):
_type = "data"
_icon_dir = "resources/ibm/data"
class Caches(_Data):
_icon = "caches.png"
class Cloud(_Data):
_icon = "cloud.png"
class ConversationTrainedDeployed(_Data):
_icon = "conversation-trained-deployed.png"
class DataServices(_Data):
_icon = "data-services.png"
class DataSources(_Data):
_icon = "data-sources.png"
class DeviceIdentityService(_Data):
_icon = "device-identity-service.png"
class DeviceRegistry(_Data):
_icon = "device-registry.png"
class EnterpriseData(_Data):
_icon = "enterprise-data.png"
class EnterpriseUserDirectory(_Data):
_icon = "enterprise-user-directory.png"
class FileRepository(_Data):
_icon = "file-repository.png"
class GroundTruth(_Data):
_icon = "ground-truth.png"
class Model(_Data):
_icon = "model.png"
class TmsDataInterface(_Data):
_icon = "tms-data-interface.png"
# Aliases

@ -0,0 +1,51 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _IBM
class _Devops(_IBM):
_type = "devops"
_icon_dir = "resources/ibm/devops"
class ArtifactManagement(_Devops):
_icon = "artifact-management.png"
class BuildTest(_Devops):
_icon = "build-test.png"
class CodeEditor(_Devops):
_icon = "code-editor.png"
class CollaborativeDevelopment(_Devops):
_icon = "collaborative-development.png"
class ConfigurationManagement(_Devops):
_icon = "configuration-management.png"
class ContinuousDeploy(_Devops):
_icon = "continuous-deploy.png"
class ContinuousTesting(_Devops):
_icon = "continuous-testing.png"
class Devops(_Devops):
_icon = "devops.png"
class Provision(_Devops):
_icon = "provision.png"
class ReleaseManagement(_Devops):
_icon = "release-management.png"
# Aliases

@ -0,0 +1,119 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _IBM
class _General(_IBM):
_type = "general"
_icon_dir = "resources/ibm/general"
class CloudMessaging(_General):
_icon = "cloud-messaging.png"
class CloudServices(_General):
_icon = "cloud-services.png"
class Cloudant(_General):
_icon = "cloudant.png"
class CognitiveServices(_General):
_icon = "cognitive-services.png"
class DataSecurity(_General):
_icon = "data-security.png"
class Enterprise(_General):
_icon = "enterprise.png"
class GovernanceRiskCompliance(_General):
_icon = "governance-risk-compliance.png"
class IBMContainers(_General):
_icon = "ibm-containers.png"
class IBMPublicCloud(_General):
_icon = "ibm-public-cloud.png"
class IdentityAccessManagement(_General):
_icon = "identity-access-management.png"
class IdentityProvider(_General):
_icon = "identity-provider.png"
class InfrastructureSecurity(_General):
_icon = "infrastructure-security.png"
class Internet(_General):
_icon = "internet.png"
class IotCloud(_General):
_icon = "iot-cloud.png"
class MicroservicesApplication(_General):
_icon = "microservices-application.png"
class MicroservicesMesh(_General):
_icon = "microservices-mesh.png"
class MonitoringLogging(_General):
_icon = "monitoring-logging.png"
class Monitoring(_General):
_icon = "monitoring.png"
class ObjectStorage(_General):
_icon = "object-storage.png"
class OfflineCapabilities(_General):
_icon = "offline-capabilities.png"
class Openwhisk(_General):
_icon = "openwhisk.png"
class PeerCloud(_General):
_icon = "peer-cloud.png"
class RetrieveRank(_General):
_icon = "retrieve-rank.png"
class Scalable(_General):
_icon = "scalable.png"
class ServiceDiscoveryConfiguration(_General):
_icon = "service-discovery-configuration.png"
class TextToSpeech(_General):
_icon = "text-to-speech.png"
class TransformationConnectivity(_General):
_icon = "transformation-connectivity.png"
# Aliases

@ -0,0 +1,83 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _IBM
class _Infrastructure(_IBM):
_type = "infrastructure"
_icon_dir = "resources/ibm/infrastructure"
class Channels(_Infrastructure):
_icon = "channels.png"
class CloudMessaging(_Infrastructure):
_icon = "cloud-messaging.png"
class Dashboard(_Infrastructure):
_icon = "dashboard.png"
class Diagnostics(_Infrastructure):
_icon = "diagnostics.png"
class EdgeServices(_Infrastructure):
_icon = "edge-services.png"
class EnterpriseMessaging(_Infrastructure):
_icon = "enterprise-messaging.png"
class EventFeed(_Infrastructure):
_icon = "event-feed.png"
class InfrastructureServices(_Infrastructure):
_icon = "infrastructure-services.png"
class InterserviceCommunication(_Infrastructure):
_icon = "interservice-communication.png"
class LoadBalancingRouting(_Infrastructure):
_icon = "load-balancing-routing.png"
class MicroservicesMesh(_Infrastructure):
_icon = "microservices-mesh.png"
class MobileBackend(_Infrastructure):
_icon = "mobile-backend.png"
class MobileProviderNetwork(_Infrastructure):
_icon = "mobile-provider-network.png"
class MonitoringLogging(_Infrastructure):
_icon = "monitoring-logging.png"
class Monitoring(_Infrastructure):
_icon = "monitoring.png"
class PeerServices(_Infrastructure):
_icon = "peer-services.png"
class ServiceDiscoveryConfiguration(_Infrastructure):
_icon = "service-discovery-configuration.png"
class TransformationConnectivity(_Infrastructure):
_icon = "transformation-connectivity.png"
# Aliases

@ -0,0 +1,71 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _IBM
class _Management(_IBM):
_type = "management"
_icon_dir = "resources/ibm/management"
class AlertNotification(_Management):
_icon = "alert-notification.png"
class ApiManagement(_Management):
_icon = "api-management.png"
class CloudManagement(_Management):
_icon = "cloud-management.png"
class ClusterManagement(_Management):
_icon = "cluster-management.png"
class ContentManagement(_Management):
_icon = "content-management.png"
class DataServices(_Management):
_icon = "data-services.png"
class DeviceManagement(_Management):
_icon = "device-management.png"
class InformationGovernance(_Management):
_icon = "information-governance.png"
class ItServiceManagement(_Management):
_icon = "it-service-management.png"
class Management(_Management):
_icon = "management.png"
class MonitoringMetrics(_Management):
_icon = "monitoring-metrics.png"
class ProcessManagement(_Management):
_icon = "process-management.png"
class ProviderCloudPortalService(_Management):
_icon = "provider-cloud-portal-service.png"
class PushNotifications(_Management):
_icon = "push-notifications.png"
class ServiceManagementTools(_Management):
_icon = "service-management-tools.png"
# Aliases

@ -0,0 +1,95 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _IBM
class _Network(_IBM):
_type = "network"
_icon_dir = "resources/ibm/network"
class Bridge(_Network):
_icon = "bridge.png"
class DirectLink(_Network):
_icon = "direct-link.png"
class Enterprise(_Network):
_icon = "enterprise.png"
class Firewall(_Network):
_icon = "firewall.png"
class FloatingIp(_Network):
_icon = "floating-ip.png"
class Gateway(_Network):
_icon = "gateway.png"
class InternetServices(_Network):
_icon = "internet-services.png"
class LoadBalancerListener(_Network):
_icon = "load-balancer-listener.png"
class LoadBalancerPool(_Network):
_icon = "load-balancer-pool.png"
class LoadBalancer(_Network):
_icon = "load-balancer.png"
class LoadBalancingRouting(_Network):
_icon = "load-balancing-routing.png"
class PublicGateway(_Network):
_icon = "public-gateway.png"
class Region(_Network):
_icon = "region.png"
class Router(_Network):
_icon = "router.png"
class Rules(_Network):
_icon = "rules.png"
class Subnet(_Network):
_icon = "subnet.png"
class TransitGateway(_Network):
_icon = "transit-gateway.png"
class Vpc(_Network):
_icon = "vpc.png"
class VpnConnection(_Network):
_icon = "vpn-connection.png"
class VpnGateway(_Network):
_icon = "vpn-gateway.png"
class VpnPolicy(_Network):
_icon = "vpn-policy.png"
# Aliases

@ -0,0 +1,67 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _IBM
class _Security(_IBM):
_type = "security"
_icon_dir = "resources/ibm/security"
class ApiSecurity(_Security):
_icon = "api-security.png"
class BlockchainSecurityService(_Security):
_icon = "blockchain-security-service.png"
class DataSecurity(_Security):
_icon = "data-security.png"
class Firewall(_Security):
_icon = "firewall.png"
class Gateway(_Security):
_icon = "gateway.png"
class GovernanceRiskCompliance(_Security):
_icon = "governance-risk-compliance.png"
class IdentityAccessManagement(_Security):
_icon = "identity-access-management.png"
class IdentityProvider(_Security):
_icon = "identity-provider.png"
class InfrastructureSecurity(_Security):
_icon = "infrastructure-security.png"
class PhysicalSecurity(_Security):
_icon = "physical-security.png"
class SecurityMonitoringIntelligence(_Security):
_icon = "security-monitoring-intelligence.png"
class SecurityServices(_Security):
_icon = "security-services.png"
class TrustendComputing(_Security):
_icon = "trustend-computing.png"
class Vpn(_Security):
_icon = "vpn.png"
# Aliases

@ -0,0 +1,31 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _IBM
class _Social(_IBM):
_type = "social"
_icon_dir = "resources/ibm/social"
class Communities(_Social):
_icon = "communities.png"
class FileSync(_Social):
_icon = "file-sync.png"
class LiveCollaboration(_Social):
_icon = "live-collaboration.png"
class Messaging(_Social):
_icon = "messaging.png"
class Networking(_Social):
_icon = "networking.png"
# Aliases

@ -0,0 +1,19 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _IBM
class _Storage(_IBM):
_type = "storage"
_icon_dir = "resources/ibm/storage"
class BlockStorage(_Storage):
_icon = "block-storage.png"
class ObjectStorage(_Storage):
_icon = "object-storage.png"
# Aliases

@ -0,0 +1,35 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _IBM
class _User(_IBM):
_type = "user"
_icon_dir = "resources/ibm/user"
class Browser(_User):
_icon = "browser.png"
class Device(_User):
_icon = "device.png"
class IntegratedDigitalExperiences(_User):
_icon = "integrated-digital-experiences.png"
class PhysicalEntity(_User):
_icon = "physical-entity.png"
class Sensor(_User):
_icon = "sensor.png"
class User(_User):
_icon = "user.png"
# Aliases

@ -82,7 +82,7 @@ class Stream(_Database):
# Aliases
ADB = AutonomousDatabase
ADBWhite = AutonomousDatabaseWhite
DBService = Databaseservice
DBServiceWhite = DatabaseserviceWhite
ADB = Autonomous
ADBWhite = AutonomousWhite
DBService = DatabaseService
DBServiceWhite = DatabaseServiceWhite

@ -20,6 +20,10 @@ class Dbt(_Analytics):
_icon = "dbt.png"
class Dremio(_Analytics):
_icon = "dremio.png"
class Flink(_Analytics):
_icon = "flink.png"
@ -40,14 +44,14 @@ class Norikra(_Analytics):
_icon = "norikra.png"
class Presto(_Analytics):
_icon = "presto.png"
class Powerbi(_Analytics):
_icon = "powerbi.png"
class Presto(_Analytics):
_icon = "presto.png"
class Singer(_Analytics):
_icon = "singer.png"

@ -28,6 +28,10 @@ class Gvisor(_Container):
_icon = "gvisor.png"
class K3S(_Container):
_icon = "k3s.png"
class Lxc(_Container):
_icon = "lxc.png"

@ -20,6 +20,10 @@ class Awx(_Iac):
_icon = "awx.png"
class Puppet(_Iac):
_icon = "puppet.png"
class Terraform(_Iac):
_icon = "terraform.png"

@ -16,6 +16,10 @@ class Datadog(_Monitoring):
_icon = "datadog.png"
class Dynatrace(_Monitoring):
_icon = "dynatrace.png"
class Grafana(_Monitoring):
_icon = "grafana.png"
@ -24,6 +28,10 @@ class Humio(_Monitoring):
_icon = "humio.png"
class Nagios(_Monitoring):
_icon = "nagios.png"
class Newrelic(_Monitoring):
_icon = "newrelic.png"

@ -108,6 +108,10 @@ class Traefik(_Network):
_icon = "traefik.png"
class Tyk(_Network):
_icon = "tyk.png"
class Vyos(_Network):
_icon = "vyos.png"

@ -12,6 +12,10 @@ class Git(_Vcs):
_icon = "git.png"
class Gitea(_Vcs):
_icon = "gitea.png"
class Github(_Vcs):
_icon = "github.png"
@ -20,4 +24,8 @@ class Gitlab(_Vcs):
_icon = "gitlab.png"
class Svn(_Vcs):
_icon = "svn.png"
# Aliases

@ -56,6 +56,10 @@ class Spring(_Framework):
_icon = "spring.png"
class Starlette(_Framework):
_icon = "starlette.png"
class Vue(_Framework):
_icon = "vue.png"

@ -52,6 +52,10 @@ class Kotlin(_Language):
_icon = "kotlin.png"
class Latex(_Language):
_icon = "latex.png"
class Matlab(_Language):
_icon = "matlab.png"

@ -0,0 +1,15 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _Programming
class _Runtime(_Programming):
_type = "runtime"
_icon_dir = "resources/programming/runtime"
class Dapr(_Runtime):
_icon = "dapr.png"
# Aliases

@ -3,7 +3,7 @@ FROM python:alpine3.13
# install system dependencies.
RUN apk update && apk add --no-cache \
gcc libc-dev g++ graphviz git bash go imagemagick inkscape ttf-opensans curl fontconfig
gcc libc-dev g++ graphviz git bash go imagemagick inkscape ttf-opensans curl fontconfig xdg-utils
# install go package.
RUN go get github.com/mingrammer/round

@ -42,13 +42,13 @@ with Diagram("Clustered Web Services", show=False):
ECS("web3")]
with Cluster("DB Cluster"):
db_master = RDS("userdb")
db_master - [RDS("userdb ro")]
db_primary = RDS("userdb")
db_primary - [RDS("userdb ro")]
memcached = ElastiCache("memcached")
dns >> lb >> svc_group
svc_group >> db_master
svc_group >> db_primary
svc_group >> memcached
```
@ -196,14 +196,14 @@ with Diagram("Advanced Web Service with On-Premise", show=False):
Server("grpc3")]
with Cluster("Sessions HA"):
master = Redis("session")
master - Redis("replica") << metrics
grpcsvc >> master
primary = Redis("session")
primary - Redis("replica") << metrics
grpcsvc >> primary
with Cluster("Database HA"):
master = PostgreSQL("users")
master - PostgreSQL("slave") << metrics
grpcsvc >> master
primary = PostgreSQL("users")
primary - PostgreSQL("replica") << metrics
grpcsvc >> primary
aggregator = Fluentd("logging")
aggregator >> Kafka("stream") >> Spark("analytics")
@ -239,14 +239,14 @@ with Diagram(name="Advanced Web Service with On-Premise (colored)", show=False):
Server("grpc3")]
with Cluster("Sessions HA"):
master = Redis("session")
master - Edge(color="brown", style="dashed") - Redis("replica") << Edge(label="collect") << metrics
grpcsvc >> Edge(color="brown") >> master
primary = Redis("session")
primary - Edge(color="brown", style="dashed") - Redis("replica") << Edge(label="collect") << metrics
grpcsvc >> Edge(color="brown") >> primary
with Cluster("Database HA"):
master = PostgreSQL("users")
master - Edge(color="brown", style="dotted") - PostgreSQL("slave") << Edge(label="collect") << metrics
grpcsvc >> Edge(color="black") >> master
primary = PostgreSQL("users")
primary - Edge(color="brown", style="dotted") - PostgreSQL("replica") << Edge(label="collect") << metrics
grpcsvc >> Edge(color="black") >> primary
aggregator = Fluentd("logging")
aggregator >> Edge(label="parse") >> Kafka("stream") >> Edge(color="black", style="bold") >> Spark("analytics")

@ -22,11 +22,11 @@ with Diagram("Simple Web Service with DB Cluster", show=False):
web = ECS("service")
with Cluster("DB Cluster"):
db_master = RDS("master")
db_master - [RDS("slave1"),
RDS("slave2")]
db_primary = RDS("primary")
db_primary - [RDS("replica1"),
RDS("replica2")]
dns >> web >> db_master
dns >> web >> db_primary
```
![simple web service with db cluster diagram](/img/simple_web_service_with_db_cluster_diagram.png)
@ -68,4 +68,4 @@ with Diagram("Event Processing", show=False):
![event processing diagram](/img/event_processing_diagram.png)
> There is no depth limit of nesting. Feel free to create nested clusters as deep as you want.
> There is no depth limit of nesting. Feel free to create nested clusters as deep as you want.

@ -17,7 +17,7 @@ from diagrams.onprem.analytics import Spark
from diagrams.onprem.compute import Server
from diagrams.onprem.database import PostgreSQL
from diagrams.onprem.inmemory import Redis
from diagrams.onprem.logging import Fluentd
from diagrams.onprem.aggregator import Fluentd
from diagrams.onprem.monitoring import Grafana, Prometheus
from diagrams.onprem.network import Nginx
from diagrams.onprem.queue import Kafka
@ -35,19 +35,35 @@ with Diagram(name="Advanced Web Service with On-Premise (colored)", show=False):
Server("grpc3")]
with Cluster("Sessions HA"):
master = Redis("session")
master - Edge(color="brown", style="dashed") - Redis("replica") << Edge(label="collect") << metrics
grpcsvc >> Edge(color="brown") >> master
primary = Redis("session")
primary \
- Edge(color="brown", style="dashed") \
- Redis("replica") \
<< Edge(label="collect") \
<< metrics
grpcsvc >> Edge(color="brown") >> primary
with Cluster("Database HA"):
master = PostgreSQL("users")
master - Edge(color="brown", style="dotted") - PostgreSQL("slave") << Edge(label="collect") << metrics
grpcsvc >> Edge(color="black") >> master
primary = PostgreSQL("users")
primary \
- Edge(color="brown", style="dotted") \
- PostgreSQL("replica") \
<< Edge(label="collect") \
<< metrics
grpcsvc >> Edge(color="black") >> primary
aggregator = Fluentd("logging")
aggregator >> Edge(label="parse") >> Kafka("stream") >> Edge(color="black", style="bold") >> Spark("analytics")
aggregator \
>> Edge(label="parse") \
>> Kafka("stream") \
>> Edge(color="black", style="bold") \
>> Spark("analytics")
ingress >> Edge(color="darkgreen") << grpcsvc >> Edge(color="darkorange") >> aggregator
ingress \
>> Edge(color="darkgreen") \
<< grpcsvc \
>> Edge(color="darkorange") \
>> aggregator
```
![advanced web service with on-premise diagram colored](/img/advanced_web_service_with_on-premise_colored.png)

@ -54,7 +54,7 @@ from diagrams.k8s.storage import PV, PVC, StorageClass
# oracle resources
from diagrams.oci.compute import VirtualMachine, Container
from diagrams.oci.network import Firewall
from diagrams.oci.storage import Filestorage, Storagegateway
from diagrams.oci.storage import FileStorage, StorageGateway
```
You can find all available nodes list in [Here](https://diagrams.mingrammer.com/docs/nodes/aws).

@ -11,9 +11,14 @@ Node classes list of aws provider.
- **diagrams.aws.analytics.Athena**
- **diagrams.aws.analytics.CloudsearchSearchDocuments**
- **diagrams.aws.analytics.Cloudsearch**
- **diagrams.aws.analytics.DataLakeResource**
- **diagrams.aws.analytics.DataPipeline**
- **diagrams.aws.analytics.ElasticsearchService**, **ES** (alias)
- **diagrams.aws.analytics.EMRCluster**
- **diagrams.aws.analytics.EMREngineMaprM3**
- **diagrams.aws.analytics.EMREngineMaprM5**
- **diagrams.aws.analytics.EMREngineMaprM7**
- **diagrams.aws.analytics.EMREngine**
- **diagrams.aws.analytics.EMRHdfsCluster**
- **diagrams.aws.analytics.EMR**
- **diagrams.aws.analytics.GlueCrawlers**
@ -33,16 +38,20 @@ Node classes list of aws provider.
## aws.ar
- **diagrams.aws.ar.ArVr**
- **diagrams.aws.ar.Sumerian**
## aws.blockchain
- **diagrams.aws.blockchain.BlockchainResource**
- **diagrams.aws.blockchain.Blockchain**
- **diagrams.aws.blockchain.ManagedBlockchain**
- **diagrams.aws.blockchain.QuantumLedgerDatabaseQldb**, **QLDB** (alias)
## aws.business
- **diagrams.aws.business.AlexaForBusiness**, **A4B** (alias)
- **diagrams.aws.business.BusinessApplications**
- **diagrams.aws.business.Chime**
- **diagrams.aws.business.Workmail**
@ -50,15 +59,32 @@ Node classes list of aws provider.
- **diagrams.aws.compute.ApplicationAutoScaling**, **AutoScaling** (alias)
- **diagrams.aws.compute.Batch**
- **diagrams.aws.compute.ComputeOptimizer**
- **diagrams.aws.compute.Compute**
- **diagrams.aws.compute.EC2Ami**, **AMI** (alias)
- **diagrams.aws.compute.EC2AutoScaling**
- **diagrams.aws.compute.EC2ContainerRegistryImage**
- **diagrams.aws.compute.EC2ContainerRegistryRegistry**
- **diagrams.aws.compute.EC2ContainerRegistry**, **ECR** (alias)
- **diagrams.aws.compute.EC2ElasticIpAddress**
- **diagrams.aws.compute.EC2ImageBuilder**
- **diagrams.aws.compute.EC2Instance**
- **diagrams.aws.compute.EC2Instances**
- **diagrams.aws.compute.EC2Rescue**
- **diagrams.aws.compute.EC2SpotInstance**
- **diagrams.aws.compute.EC2**
- **diagrams.aws.compute.ElasticBeanstalkApplication**
- **diagrams.aws.compute.ElasticBeanstalkDeployment**
- **diagrams.aws.compute.ElasticBeanstalk**, **EB** (alias)
- **diagrams.aws.compute.ElasticContainerServiceContainer**
- **diagrams.aws.compute.ElasticContainerServiceService**
- **diagrams.aws.compute.ElasticContainerService**, **ECS** (alias)
- **diagrams.aws.compute.ElasticKubernetesService**, **EKS** (alias)
- **diagrams.aws.compute.Fargate**
- **diagrams.aws.compute.LambdaFunction**
- **diagrams.aws.compute.Lambda**
- **diagrams.aws.compute.Lightsail**
- **diagrams.aws.compute.LocalZones**
- **diagrams.aws.compute.Outposts**
- **diagrams.aws.compute.ServerlessApplicationRepository**, **SAR** (alias)
- **diagrams.aws.compute.ThinkboxDeadline**
@ -69,36 +95,57 @@ Node classes list of aws provider.
- **diagrams.aws.compute.ThinkboxStoke**
- **diagrams.aws.compute.ThinkboxXmesh**
- **diagrams.aws.compute.VmwareCloudOnAWS**
- **diagrams.aws.compute.Wavelength**
## aws.cost
- **diagrams.aws.cost.Budgets**
- **diagrams.aws.cost.CostAndUsageReport**
- **diagrams.aws.cost.CostExplorer**
- **diagrams.aws.cost.CostManagement**
- **diagrams.aws.cost.ReservedInstanceReporting**
- **diagrams.aws.cost.SavingsPlans**
## aws.database
- **diagrams.aws.database.AuroraInstance**
- **diagrams.aws.database.Aurora**
- **diagrams.aws.database.DatabaseMigrationServiceDatabaseMigrationWorkflow**
- **diagrams.aws.database.DatabaseMigrationService**, **DMS** (alias)
- **diagrams.aws.database.Database**, **DB** (alias)
- **diagrams.aws.database.DocumentdbMongodbCompatibility**, **DocumentDB** (alias)
- **diagrams.aws.database.DynamodbAttribute**
- **diagrams.aws.database.DynamodbAttributes**
- **diagrams.aws.database.DynamodbDax**, **DAX** (alias)
- **diagrams.aws.database.DynamodbGlobalSecondaryIndex**, **DynamodbGSI** (alias)
- **diagrams.aws.database.DynamodbItem**
- **diagrams.aws.database.DynamodbItems**
- **diagrams.aws.database.DynamodbTable**
- **diagrams.aws.database.Dynamodb**, **DDB** (alias)
- **diagrams.aws.database.ElasticacheCacheNode**
- **diagrams.aws.database.ElasticacheForMemcached**
- **diagrams.aws.database.ElasticacheForRedis**
- **diagrams.aws.database.Elasticache**, **ElastiCache** (alias)
- **diagrams.aws.database.KeyspacesManagedApacheCassandraService**
- **diagrams.aws.database.Neptune**
- **diagrams.aws.database.QuantumLedgerDatabaseQldb**, **QLDB** (alias)
- **diagrams.aws.database.RDSInstance**
- **diagrams.aws.database.RDSMariadbInstance**
- **diagrams.aws.database.RDSMysqlInstance**
- **diagrams.aws.database.RDSOnVmware**
- **diagrams.aws.database.RDSOracleInstance**
- **diagrams.aws.database.RDSPostgresqlInstance**
- **diagrams.aws.database.RDSSqlServerInstance**
- **diagrams.aws.database.RDS**
- **diagrams.aws.database.RedshiftDenseComputeNode**
- **diagrams.aws.database.RedshiftDenseStorageNode**
- **diagrams.aws.database.Redshift**
- **diagrams.aws.database.Timestream**
## aws.devtools
- **diagrams.aws.devtools.CloudDevelopmentKit**
- **diagrams.aws.devtools.Cloud9Resource**
- **diagrams.aws.devtools.Cloud9**
- **diagrams.aws.devtools.Codebuild**
- **diagrams.aws.devtools.Codecommit**
@ -112,6 +159,7 @@ Node classes list of aws provider.
## aws.enablement
- **diagrams.aws.enablement.CustomerEnablement**
- **diagrams.aws.enablement.Iq**
- **diagrams.aws.enablement.ManagedServices**
- **diagrams.aws.enablement.ProfessionalServices**
@ -120,6 +168,7 @@ Node classes list of aws provider.
## aws.enduser
- **diagrams.aws.enduser.Appstream20**
- **diagrams.aws.enduser.DesktopAndAppStreaming**
- **diagrams.aws.enduser.Workdocs**
- **diagrams.aws.enduser.Worklink**
- **diagrams.aws.enduser.Workspaces**
@ -127,23 +176,39 @@ Node classes list of aws provider.
## aws.engagement
- **diagrams.aws.engagement.Connect**
- **diagrams.aws.engagement.CustomerEngagement**
- **diagrams.aws.engagement.Pinpoint**
- **diagrams.aws.engagement.SimpleEmailServiceSesEmail**
- **diagrams.aws.engagement.SimpleEmailServiceSes**, **SES** (alias)
## aws.game
- **diagrams.aws.game.GameTech**
- **diagrams.aws.game.Gamelift**
## aws.general
- **diagrams.aws.general.Client**
- **diagrams.aws.general.Disk**
- **diagrams.aws.general.Forums**
- **diagrams.aws.general.General**
- **diagrams.aws.general.GenericDatabase**
- **diagrams.aws.general.GenericFirewall**
- **diagrams.aws.general.GenericOfficeBuilding**, **OfficeBuilding** (alias)
- **diagrams.aws.general.GenericSamlToken**
- **diagrams.aws.general.GenericSDK**
- **diagrams.aws.general.InternetAlt1**
- **diagrams.aws.general.InternetAlt2**
- **diagrams.aws.general.InternetGateway**
- **diagrams.aws.general.Marketplace**
- **diagrams.aws.general.MobileClient**
- **diagrams.aws.general.Multimedia**
- **diagrams.aws.general.OfficeBuilding**
- **diagrams.aws.general.SamlToken**
- **diagrams.aws.general.SDK**
- **diagrams.aws.general.SslPadlock**
- **diagrams.aws.general.TapeStorage**
- **diagrams.aws.general.Toolkit**
- **diagrams.aws.general.TraditionalServer**
- **diagrams.aws.general.User**
- **diagrams.aws.general.Users**
@ -153,9 +218,19 @@ Node classes list of aws provider.
- **diagrams.aws.integration.ApplicationIntegration**
- **diagrams.aws.integration.Appsync**
- **diagrams.aws.integration.ConsoleMobileApplication**
- **diagrams.aws.integration.EventResource**
- **diagrams.aws.integration.EventbridgeCustomEventBusResource**
- **diagrams.aws.integration.EventbridgeDefaultEventBusResource**
- **diagrams.aws.integration.EventbridgeSaasPartnerEventBusResource**
- **diagrams.aws.integration.Eventbridge**
- **diagrams.aws.integration.ExpressWorkflows**
- **diagrams.aws.integration.MQ**
- **diagrams.aws.integration.SimpleNotificationServiceSnsEmailNotification**
- **diagrams.aws.integration.SimpleNotificationServiceSnsHttpNotification**
- **diagrams.aws.integration.SimpleNotificationServiceSnsTopic**
- **diagrams.aws.integration.SimpleNotificationServiceSns**, **SNS** (alias)
- **diagrams.aws.integration.SimpleQueueServiceSqsMessage**
- **diagrams.aws.integration.SimpleQueueServiceSqsQueue**
- **diagrams.aws.integration.SimpleQueueServiceSqs**, **SQS** (alias)
- **diagrams.aws.integration.StepFunctions**, **SF** (alias)
@ -165,37 +240,77 @@ Node classes list of aws provider.
- **diagrams.aws.iot.InternetOfThings**
- **diagrams.aws.iot.Iot1Click**
- **diagrams.aws.iot.IotAction**
- **diagrams.aws.iot.IotActuator**
- **diagrams.aws.iot.IotAlexaEcho**
- **diagrams.aws.iot.IotAlexaEnabledDevice**
- **diagrams.aws.iot.IotAlexaSkill**
- **diagrams.aws.iot.IotAlexaVoiceService**
- **diagrams.aws.iot.IotAnalyticsChannel**
- **diagrams.aws.iot.IotAnalyticsDataSet**
- **diagrams.aws.iot.IotAnalyticsDataStore**
- **diagrams.aws.iot.IotAnalyticsNotebook**
- **diagrams.aws.iot.IotAnalyticsPipeline**
- **diagrams.aws.iot.IotAnalytics**
- **diagrams.aws.iot.IotBank**
- **diagrams.aws.iot.IotBicycle**
- **diagrams.aws.iot.IotButton**
- **diagrams.aws.iot.IotCamera**
- **diagrams.aws.iot.IotCar**
- **diagrams.aws.iot.IotCart**
- **diagrams.aws.iot.IotCertificate**
- **diagrams.aws.iot.IotCoffeePot**
- **diagrams.aws.iot.IotCore**
- **diagrams.aws.iot.IotDesiredState**
- **diagrams.aws.iot.IotDeviceDefender**
- **diagrams.aws.iot.IotDeviceGateway**
- **diagrams.aws.iot.IotDeviceManagement**
- **diagrams.aws.iot.IotDoorLock**
- **diagrams.aws.iot.IotEvents**
- **diagrams.aws.iot.IotFactory**
- **diagrams.aws.iot.IotFireTvStick**
- **diagrams.aws.iot.IotFireTv**
- **diagrams.aws.iot.IotGeneric**
- **diagrams.aws.iot.IotGreengrassConnector**
- **diagrams.aws.iot.IotGreengrass**
- **diagrams.aws.iot.IotHardwareBoard**, **IotBoard** (alias)
- **diagrams.aws.iot.IotHouse**
- **diagrams.aws.iot.IotHttp**
- **diagrams.aws.iot.IotHttp2**
- **diagrams.aws.iot.IotJobs**
- **diagrams.aws.iot.IotLambda**
- **diagrams.aws.iot.IotLightbulb**
- **diagrams.aws.iot.IotMedicalEmergency**
- **diagrams.aws.iot.IotMqtt**
- **diagrams.aws.iot.IotOverTheAirUpdate**
- **diagrams.aws.iot.IotPolicyEmergency**
- **diagrams.aws.iot.IotPolicy**
- **diagrams.aws.iot.IotReportedState**
- **diagrams.aws.iot.IotRule**
- **diagrams.aws.iot.IotSensor**
- **diagrams.aws.iot.IotServo**
- **diagrams.aws.iot.IotShadow**
- **diagrams.aws.iot.IotSimulator**
- **diagrams.aws.iot.IotSitewise**
- **diagrams.aws.iot.IotThermostat**
- **diagrams.aws.iot.IotThingsGraph**
- **diagrams.aws.iot.IotTopic**
- **diagrams.aws.iot.IotTravel**
- **diagrams.aws.iot.IotUtility**
- **diagrams.aws.iot.IotWindfarm**
## aws.management
- **diagrams.aws.management.AutoScaling**
- **diagrams.aws.management.Chatbot**
- **diagrams.aws.management.CloudformationChangeSet**
- **diagrams.aws.management.CloudformationStack**
- **diagrams.aws.management.CloudformationTemplate**
- **diagrams.aws.management.Cloudformation**
- **diagrams.aws.management.Cloudtrail**
- **diagrams.aws.management.CloudwatchAlarm**
- **diagrams.aws.management.CloudwatchEventEventBased**
- **diagrams.aws.management.CloudwatchEventTimeBased**
- **diagrams.aws.management.CloudwatchRule**
- **diagrams.aws.management.Cloudwatch**
- **diagrams.aws.management.Codeguru**
- **diagrams.aws.management.CommandLineInterface**
@ -203,12 +318,37 @@ Node classes list of aws provider.
- **diagrams.aws.management.ControlTower**
- **diagrams.aws.management.LicenseManager**
- **diagrams.aws.management.ManagedServices**
- **diagrams.aws.management.ManagementAndGovernance**
- **diagrams.aws.management.ManagementConsole**
- **diagrams.aws.management.OpsworksApps**
- **diagrams.aws.management.OpsworksDeployments**
- **diagrams.aws.management.OpsworksInstances**
- **diagrams.aws.management.OpsworksLayers**
- **diagrams.aws.management.OpsworksMonitoring**
- **diagrams.aws.management.OpsworksPermissions**
- **diagrams.aws.management.OpsworksResources**
- **diagrams.aws.management.OpsworksStack**
- **diagrams.aws.management.Opsworks**
- **diagrams.aws.management.OrganizationsAccount**
- **diagrams.aws.management.OrganizationsOrganizationalUnit**
- **diagrams.aws.management.Organizations**
- **diagrams.aws.management.PersonalHealthDashboard**
- **diagrams.aws.management.ServiceCatalog**
- **diagrams.aws.management.SystemsManagerAutomation**
- **diagrams.aws.management.SystemsManagerDocuments**
- **diagrams.aws.management.SystemsManagerInventory**
- **diagrams.aws.management.SystemsManagerMaintenanceWindows**
- **diagrams.aws.management.SystemsManagerOpscenter**
- **diagrams.aws.management.SystemsManagerParameterStore**, **ParameterStore** (alias)
- **diagrams.aws.management.SystemsManagerPatchManager**
- **diagrams.aws.management.SystemsManagerRunCommand**
- **diagrams.aws.management.SystemsManagerStateManager**
- **diagrams.aws.management.SystemsManager**, **SSM** (alias)
- **diagrams.aws.management.TrustedAdvisorChecklistCost**
- **diagrams.aws.management.TrustedAdvisorChecklistFaultTolerant**
- **diagrams.aws.management.TrustedAdvisorChecklistPerformance**
- **diagrams.aws.management.TrustedAdvisorChecklistSecurity**
- **diagrams.aws.management.TrustedAdvisorChecklist**
- **diagrams.aws.management.TrustedAdvisor**
- **diagrams.aws.management.WellArchitectedTool**
@ -225,12 +365,15 @@ Node classes list of aws provider.
- **diagrams.aws.media.ElementalMediastore**
- **diagrams.aws.media.ElementalMediatailor**
- **diagrams.aws.media.ElementalServer**
- **diagrams.aws.media.KinesisVideoStreams**
- **diagrams.aws.media.MediaServices**
## aws.migration
- **diagrams.aws.migration.ApplicationDiscoveryService**, **ADS** (alias)
- **diagrams.aws.migration.CloudendureMigration**, **CEM** (alias)
- **diagrams.aws.migration.DatabaseMigrationService**, **DMS** (alias)
- **diagrams.aws.migration.DatasyncAgent**
- **diagrams.aws.migration.Datasync**
- **diagrams.aws.migration.MigrationAndTransfer**, **MAT** (alias)
- **diagrams.aws.migration.MigrationHub**
@ -243,17 +386,23 @@ Node classes list of aws provider.
## aws.ml
- **diagrams.aws.ml.ApacheMxnetOnAWS**
- **diagrams.aws.ml.AugmentedAi**
- **diagrams.aws.ml.Comprehend**
- **diagrams.aws.ml.DeepLearningAmis**
- **diagrams.aws.ml.DeepLearningContainers**, **DLC** (alias)
- **diagrams.aws.ml.Deepcomposer**
- **diagrams.aws.ml.Deeplens**
- **diagrams.aws.ml.Deepracer**
- **diagrams.aws.ml.ElasticInference**
- **diagrams.aws.ml.Forecast**
- **diagrams.aws.ml.FraudDetector**
- **diagrams.aws.ml.Kendra**
- **diagrams.aws.ml.Lex**
- **diagrams.aws.ml.MachineLearning**
- **diagrams.aws.ml.Personalize**
- **diagrams.aws.ml.Polly**
- **diagrams.aws.ml.RekognitionImage**
- **diagrams.aws.ml.RekognitionVideo**
- **diagrams.aws.ml.Rekognition**
- **diagrams.aws.ml.SagemakerGroundTruth**
- **diagrams.aws.ml.SagemakerModel**
@ -272,17 +421,25 @@ Node classes list of aws provider.
- **diagrams.aws.mobile.APIGateway**
- **diagrams.aws.mobile.Appsync**
- **diagrams.aws.mobile.DeviceFarm**
- **diagrams.aws.mobile.Mobile**
- **diagrams.aws.mobile.Pinpoint**
## aws.network
- **diagrams.aws.network.APIGatewayEndpoint**
- **diagrams.aws.network.APIGateway**
- **diagrams.aws.network.AppMesh**
- **diagrams.aws.network.ClientVpn**
- **diagrams.aws.network.CloudMap**
- **diagrams.aws.network.CloudFrontDownloadDistribution**
- **diagrams.aws.network.CloudFrontEdgeLocation**
- **diagrams.aws.network.CloudFrontStreamingDistribution**
- **diagrams.aws.network.CloudFront**, **CF** (alias)
- **diagrams.aws.network.DirectConnect**
- **diagrams.aws.network.ElasticLoadBalancing**, **ELB** (alias)
- **diagrams.aws.network.ElbApplicationLoadBalancer**, **ALB** (alias)
- **diagrams.aws.network.ElbClassicLoadBalancer**, **CLB** (alias)
- **diagrams.aws.network.ElbNetworkLoadBalancer**, **NLB** (alias)
- **diagrams.aws.network.Endpoint**
- **diagrams.aws.network.GlobalAccelerator**, **GAX** (alias)
- **diagrams.aws.network.InternetGateway**
@ -292,20 +449,32 @@ Node classes list of aws provider.
- **diagrams.aws.network.PrivateSubnet**
- **diagrams.aws.network.Privatelink**
- **diagrams.aws.network.PublicSubnet**
- **diagrams.aws.network.Route53HostedZone**
- **diagrams.aws.network.Route53**
- **diagrams.aws.network.RouteTable**
- **diagrams.aws.network.SiteToSiteVpn**
- **diagrams.aws.network.TransitGateway**
- **diagrams.aws.network.VPCCustomerGateway**
- **diagrams.aws.network.VPCElasticNetworkAdapter**
- **diagrams.aws.network.VPCElasticNetworkInterface**
- **diagrams.aws.network.VPCFlowLogs**
- **diagrams.aws.network.VPCPeering**
- **diagrams.aws.network.VPCRouter**
- **diagrams.aws.network.VPCTrafficMirroring**
- **diagrams.aws.network.VPC**
- **diagrams.aws.network.VpnConnection**
- **diagrams.aws.network.VpnGateway**
## aws.quantum
- **diagrams.aws.quantum.Braket**
- **diagrams.aws.quantum.QuantumTechnologies**
## aws.robotics
- **diagrams.aws.robotics.RobomakerCloudExtensionRos**
- **diagrams.aws.robotics.RobomakerDevelopmentEnvironment**
- **diagrams.aws.robotics.RobomakerFleetManagement**
- **diagrams.aws.robotics.RobomakerSimulator**
- **diagrams.aws.robotics.Robomaker**
- **diagrams.aws.robotics.Robotics**
@ -313,10 +482,13 @@ Node classes list of aws provider.
## aws.satellite
- **diagrams.aws.satellite.GroundStation**
- **diagrams.aws.satellite.Satellite**
## aws.security
- **diagrams.aws.security.AdConnector**
- **diagrams.aws.security.Artifact**
- **diagrams.aws.security.CertificateAuthority**
- **diagrams.aws.security.CertificateManager**, **ACM** (alias)
- **diagrams.aws.security.CloudDirectory**
- **diagrams.aws.security.Cloudhsm**, **CloudHSM** (alias)
@ -326,19 +498,32 @@ Node classes list of aws provider.
- **diagrams.aws.security.FirewallManager**, **FMS** (alias)
- **diagrams.aws.security.Guardduty**
- **diagrams.aws.security.IdentityAndAccessManagementIamAccessAnalyzer**, **IAMAccessAnalyzer** (alias)
- **diagrams.aws.security.IdentityAndAccessManagementIamAddOn**
- **diagrams.aws.security.IdentityAndAccessManagementIamAWSStsAlternate**
- **diagrams.aws.security.IdentityAndAccessManagementIamAWSSts**, **IAMAWSSts** (alias)
- **diagrams.aws.security.IdentityAndAccessManagementIamDataEncryptionKey**
- **diagrams.aws.security.IdentityAndAccessManagementIamEncryptedData**
- **diagrams.aws.security.IdentityAndAccessManagementIamLongTermSecurityCredential**
- **diagrams.aws.security.IdentityAndAccessManagementIamMfaToken**
- **diagrams.aws.security.IdentityAndAccessManagementIamPermissions**, **IAMPermissions** (alias)
- **diagrams.aws.security.IdentityAndAccessManagementIamRole**, **IAMRole** (alias)
- **diagrams.aws.security.IdentityAndAccessManagementIamTemporarySecurityCredential**
- **diagrams.aws.security.IdentityAndAccessManagementIam**, **IAM** (alias)
- **diagrams.aws.security.InspectorAgent**
- **diagrams.aws.security.Inspector**
- **diagrams.aws.security.KeyManagementService**, **KMS** (alias)
- **diagrams.aws.security.Macie**
- **diagrams.aws.security.ManagedMicrosoftAd**
- **diagrams.aws.security.ResourceAccessManager**, **RAM** (alias)
- **diagrams.aws.security.SecretsManager**
- **diagrams.aws.security.SecurityHubFinding**
- **diagrams.aws.security.SecurityHub**
- **diagrams.aws.security.SecurityIdentityAndCompliance**
- **diagrams.aws.security.ShieldAdvanced**
- **diagrams.aws.security.Shield**
- **diagrams.aws.security.SimpleAd**
- **diagrams.aws.security.SingleSignOn**
- **diagrams.aws.security.WAFFilteringRule**
- **diagrams.aws.security.WAF**
## aws.storage
@ -347,15 +532,28 @@ Node classes list of aws provider.
- **diagrams.aws.storage.CloudendureDisasterRecovery**, **CDR** (alias)
- **diagrams.aws.storage.EFSInfrequentaccessPrimaryBg**
- **diagrams.aws.storage.EFSStandardPrimaryBg**
- **diagrams.aws.storage.ElasticBlockStoreEBSSnapshot**
- **diagrams.aws.storage.ElasticBlockStoreEBSVolume**
- **diagrams.aws.storage.ElasticBlockStoreEBS**, **EBS** (alias)
- **diagrams.aws.storage.ElasticFileSystemEFSFileSystem**
- **diagrams.aws.storage.ElasticFileSystemEFS**, **EFS** (alias)
- **diagrams.aws.storage.FsxForLustre**
- **diagrams.aws.storage.FsxForWindowsFileServer**
- **diagrams.aws.storage.Fsx**, **FSx** (alias)
- **diagrams.aws.storage.MultipleVolumesResource**
- **diagrams.aws.storage.S3GlacierArchive**
- **diagrams.aws.storage.S3GlacierVault**
- **diagrams.aws.storage.S3Glacier**
- **diagrams.aws.storage.SimpleStorageServiceS3BucketWithObjects**
- **diagrams.aws.storage.SimpleStorageServiceS3Bucket**
- **diagrams.aws.storage.SimpleStorageServiceS3Object**
- **diagrams.aws.storage.SimpleStorageServiceS3**, **S3** (alias)
- **diagrams.aws.storage.SnowFamilySnowballImportExport**
- **diagrams.aws.storage.SnowballEdge**
- **diagrams.aws.storage.Snowball**
- **diagrams.aws.storage.Snowmobile**
- **diagrams.aws.storage.StorageGatewayCachedVolume**
- **diagrams.aws.storage.StorageGatewayNonCachedVolume**
- **diagrams.aws.storage.StorageGatewayVirtualTapeLibrary**
- **diagrams.aws.storage.StorageGateway**
- **diagrams.aws.storage.Storage**

@ -18,9 +18,12 @@ Node classes list of azure provider.
- **diagrams.azure.analytics.Hdinsightclusters**
- **diagrams.azure.analytics.LogAnalyticsWorkspaces**
- **diagrams.azure.analytics.StreamAnalyticsJobs**
- **diagrams.azure.analytics.SynapseAnalytics**
## azure.compute
- **diagrams.azure.compute.AppServices**
- **diagrams.azure.compute.AutomanagedVM**
- **diagrams.azure.compute.AvailabilitySets**
- **diagrams.azure.compute.BatchAccounts**
- **diagrams.azure.compute.CitrixVirtualDesktopsEssentials**
@ -29,37 +32,51 @@ Node classes list of azure provider.
- **diagrams.azure.compute.CloudsimpleVirtualMachines**
- **diagrams.azure.compute.ContainerInstances**
- **diagrams.azure.compute.ContainerRegistries**, **ACR** (alias)
- **diagrams.azure.compute.DiskEncryptionSets**
- **diagrams.azure.compute.DiskSnapshots**
- **diagrams.azure.compute.Disks**
- **diagrams.azure.compute.FunctionApps**
- **diagrams.azure.compute.ImageDefinitions**
- **diagrams.azure.compute.ImageVersions**
- **diagrams.azure.compute.KubernetesServices**, **AKS** (alias)
- **diagrams.azure.compute.MeshApplications**
- **diagrams.azure.compute.OsImages**
- **diagrams.azure.compute.SAPHANAOnAzure**
- **diagrams.azure.compute.ServiceFabricClusters**
- **diagrams.azure.compute.SharedImageGalleries**
- **diagrams.azure.compute.SpringCloud**
- **diagrams.azure.compute.VMClassic**
- **diagrams.azure.compute.VMImages**
- **diagrams.azure.compute.VMLinux**
- **diagrams.azure.compute.VMScaleSet**
- **diagrams.azure.compute.VMScaleSet**, **VMSS** (alias)
- **diagrams.azure.compute.VMWindows**
- **diagrams.azure.compute.VM**
- **diagrams.azure.compute.Workspaces**
## azure.database
- **diagrams.azure.database.BlobStorage**
- **diagrams.azure.database.CacheForRedis**
- **diagrams.azure.database.CosmosDb**
- **diagrams.azure.database.DataExplorerClusters**
- **diagrams.azure.database.DataFactory**
- **diagrams.azure.database.DataLake**
- **diagrams.azure.database.DatabaseForMariadbServers**
- **diagrams.azure.database.DatabaseForMysqlServers**
- **diagrams.azure.database.DatabaseForPostgresqlServers**
- **diagrams.azure.database.ElasticDatabasePools**
- **diagrams.azure.database.ElasticJobAgents**
- **diagrams.azure.database.InstancePools**
- **diagrams.azure.database.ManagedDatabases**
- **diagrams.azure.database.SQLDatabases**
- **diagrams.azure.database.SQLDatawarehouse**
- **diagrams.azure.database.SQLManagedInstances**
- **diagrams.azure.database.SQLServerStretchDatabases**
- **diagrams.azure.database.SQLServers**
- **diagrams.azure.database.SQLVM**
- **diagrams.azure.database.SQL**
- **diagrams.azure.database.SsisLiftAndShiftIr**
- **diagrams.azure.database.SynapseAnalytics**
- **diagrams.azure.database.VirtualClusters**
- **diagrams.azure.database.VirtualDatacenter**
@ -70,6 +87,7 @@ Node classes list of azure provider.
- **diagrams.azure.devops.Boards**
- **diagrams.azure.devops.Devops**
- **diagrams.azure.devops.DevtestLabs**
- **diagrams.azure.devops.LabServices**
- **diagrams.azure.devops.Pipelines**
- **diagrams.azure.devops.Repos**
- **diagrams.azure.devops.TestPlans**
@ -115,9 +133,11 @@ Node classes list of azure provider.
- **diagrams.azure.identity.AppRegistrations**
- **diagrams.azure.identity.ConditionalAccess**
- **diagrams.azure.identity.EnterpriseApplications**
- **diagrams.azure.identity.Groups**
- **diagrams.azure.identity.IdentityGovernance**
- **diagrams.azure.identity.InformationProtection**
- **diagrams.azure.identity.ManagedIdentities**
- **diagrams.azure.identity.Users**
## azure.integration
@ -132,12 +152,14 @@ Node classes list of azure provider.
- **diagrams.azure.integration.IntegrationServiceEnvironments**
- **diagrams.azure.integration.LogicAppsCustomConnector**
- **diagrams.azure.integration.LogicApps**
- **diagrams.azure.integration.PartnerTopic**
- **diagrams.azure.integration.SendgridAccounts**
- **diagrams.azure.integration.ServiceBusRelays**
- **diagrams.azure.integration.ServiceBus**
- **diagrams.azure.integration.ServiceCatalogManagedApplicationDefinitions**
- **diagrams.azure.integration.SoftwareAsAService**
- **diagrams.azure.integration.StorsimpleDeviceManagers**
- **diagrams.azure.integration.SystemTopic**
## azure.iot
@ -154,6 +176,8 @@ Node classes list of azure provider.
## azure.migration
- **diagrams.azure.migration.DataBoxEdge**
- **diagrams.azure.migration.DataBox**
- **diagrams.azure.migration.DatabaseMigrationServices**
- **diagrams.azure.migration.MigrationProjects**
- **diagrams.azure.migration.RecoveryServicesVaults**
@ -207,6 +231,10 @@ Node classes list of azure provider.
## azure.security
- **diagrams.azure.security.ApplicationSecurityGroups**
- **diagrams.azure.security.ConditionalAccess**
- **diagrams.azure.security.Defender**
- **diagrams.azure.security.ExtendedSecurityUpdates**
- **diagrams.azure.security.KeyVaults**
- **diagrams.azure.security.SecurityCenter**
- **diagrams.azure.security.Sentinel**

@ -0,0 +1,43 @@
---
id: digitalocean
title: DigitalOcean
---
Node classes list of digitalocean provider.
## digitalocean.compute
- **diagrams.digitalocean.compute.Containers**
- **diagrams.digitalocean.compute.Docker**
- **diagrams.digitalocean.compute.DropletConnect**
- **diagrams.digitalocean.compute.DropletSnapshot**
- **diagrams.digitalocean.compute.Droplet**
- **diagrams.digitalocean.compute.K8SCluster**
- **diagrams.digitalocean.compute.K8SNodePool**
- **diagrams.digitalocean.compute.K8SNode**
## digitalocean.database
- **diagrams.digitalocean.database.DbaasPrimaryStandbyMore**
- **diagrams.digitalocean.database.DbaasPrimary**
- **diagrams.digitalocean.database.DbaasReadOnly**
- **diagrams.digitalocean.database.DbaasStandby**
## digitalocean.network
- **diagrams.digitalocean.network.Certificate**
- **diagrams.digitalocean.network.DomainRegistration**
- **diagrams.digitalocean.network.Domain**
- **diagrams.digitalocean.network.Firewall**
- **diagrams.digitalocean.network.FloatingIp**
- **diagrams.digitalocean.network.InternetGateway**
- **diagrams.digitalocean.network.LoadBalancer**
- **diagrams.digitalocean.network.ManagedVpn**
- **diagrams.digitalocean.network.Vpc**
## digitalocean.storage
- **diagrams.digitalocean.storage.Folder**
- **diagrams.digitalocean.storage.Space**
- **diagrams.digitalocean.storage.VolumeSnapshot**
- **diagrams.digitalocean.storage.Volume**

@ -20,6 +20,7 @@ Node classes list of gcp provider.
## gcp.api
- **diagrams.gcp.api.APIGateway**
- **diagrams.gcp.api.Endpoints**
## gcp.compute

@ -0,0 +1,228 @@
---
id: ibm
title: IBM
---
Node classes list of ibm provider.
## ibm.analytics
- **diagrams.ibm.analytics.Analytics**
- **diagrams.ibm.analytics.DataIntegration**
- **diagrams.ibm.analytics.DataRepositories**
- **diagrams.ibm.analytics.DeviceAnalytics**
- **diagrams.ibm.analytics.StreamingComputing**
## ibm.applications
- **diagrams.ibm.applications.ActionableInsight**
- **diagrams.ibm.applications.Annotate**
- **diagrams.ibm.applications.ApiDeveloperPortal**
- **diagrams.ibm.applications.ApiPolyglotRuntimes**
- **diagrams.ibm.applications.AppServer**
- **diagrams.ibm.applications.ApplicationLogic**
- **diagrams.ibm.applications.EnterpriseApplications**
- **diagrams.ibm.applications.Index**
- **diagrams.ibm.applications.IotApplication**
- **diagrams.ibm.applications.Microservice**
- **diagrams.ibm.applications.MobileApp**
- **diagrams.ibm.applications.Ontology**
- **diagrams.ibm.applications.OpenSourceTools**
- **diagrams.ibm.applications.RuntimeServices**
- **diagrams.ibm.applications.SaasApplications**
- **diagrams.ibm.applications.ServiceBroker**
- **diagrams.ibm.applications.SpeechToText**
- **diagrams.ibm.applications.VisualRecognition**
- **diagrams.ibm.applications.Visualization**
## ibm.blockchain
- **diagrams.ibm.blockchain.BlockchainDeveloper**
- **diagrams.ibm.blockchain.Blockchain**
- **diagrams.ibm.blockchain.CertificateAuthority**
- **diagrams.ibm.blockchain.ClientApplication**
- **diagrams.ibm.blockchain.Communication**
- **diagrams.ibm.blockchain.Consensus**
- **diagrams.ibm.blockchain.EventListener**
- **diagrams.ibm.blockchain.Event**
- **diagrams.ibm.blockchain.ExistingEnterpriseSystems**
- **diagrams.ibm.blockchain.HyperledgerFabric**
- **diagrams.ibm.blockchain.KeyManagement**
- **diagrams.ibm.blockchain.Ledger**
- **diagrams.ibm.blockchain.MembershipServicesProviderApi**
- **diagrams.ibm.blockchain.Membership**
- **diagrams.ibm.blockchain.MessageBus**
- **diagrams.ibm.blockchain.Node**
- **diagrams.ibm.blockchain.Services**
- **diagrams.ibm.blockchain.SmartContract**
- **diagrams.ibm.blockchain.TransactionManager**
- **diagrams.ibm.blockchain.Wallet**
## ibm.compute
- **diagrams.ibm.compute.BareMetalServer**
- **diagrams.ibm.compute.ImageService**
- **diagrams.ibm.compute.Instance**
- **diagrams.ibm.compute.Key**
- **diagrams.ibm.compute.PowerInstance**
## ibm.data
- **diagrams.ibm.data.Caches**
- **diagrams.ibm.data.Cloud**
- **diagrams.ibm.data.ConversationTrainedDeployed**
- **diagrams.ibm.data.DataServices**
- **diagrams.ibm.data.DataSources**
- **diagrams.ibm.data.DeviceIdentityService**
- **diagrams.ibm.data.DeviceRegistry**
- **diagrams.ibm.data.EnterpriseData**
- **diagrams.ibm.data.EnterpriseUserDirectory**
- **diagrams.ibm.data.FileRepository**
- **diagrams.ibm.data.GroundTruth**
- **diagrams.ibm.data.Model**
- **diagrams.ibm.data.TmsDataInterface**
## ibm.devops
- **diagrams.ibm.devops.ArtifactManagement**
- **diagrams.ibm.devops.BuildTest**
- **diagrams.ibm.devops.CodeEditor**
- **diagrams.ibm.devops.CollaborativeDevelopment**
- **diagrams.ibm.devops.ConfigurationManagement**
- **diagrams.ibm.devops.ContinuousDeploy**
- **diagrams.ibm.devops.ContinuousTesting**
- **diagrams.ibm.devops.Devops**
- **diagrams.ibm.devops.Provision**
- **diagrams.ibm.devops.ReleaseManagement**
## ibm.general
- **diagrams.ibm.general.CloudMessaging**
- **diagrams.ibm.general.CloudServices**
- **diagrams.ibm.general.Cloudant**
- **diagrams.ibm.general.CognitiveServices**
- **diagrams.ibm.general.DataSecurity**
- **diagrams.ibm.general.Enterprise**
- **diagrams.ibm.general.GovernanceRiskCompliance**
- **diagrams.ibm.general.IBMContainers**
- **diagrams.ibm.general.IBMPublicCloud**
- **diagrams.ibm.general.IdentityAccessManagement**
- **diagrams.ibm.general.IdentityProvider**
- **diagrams.ibm.general.InfrastructureSecurity**
- **diagrams.ibm.general.Internet**
- **diagrams.ibm.general.IotCloud**
- **diagrams.ibm.general.MicroservicesApplication**
- **diagrams.ibm.general.MicroservicesMesh**
- **diagrams.ibm.general.MonitoringLogging**
- **diagrams.ibm.general.Monitoring**
- **diagrams.ibm.general.ObjectStorage**
- **diagrams.ibm.general.OfflineCapabilities**
- **diagrams.ibm.general.Openwhisk**
- **diagrams.ibm.general.PeerCloud**
- **diagrams.ibm.general.RetrieveRank**
- **diagrams.ibm.general.Scalable**
- **diagrams.ibm.general.ServiceDiscoveryConfiguration**
- **diagrams.ibm.general.TextToSpeech**
- **diagrams.ibm.general.TransformationConnectivity**
## ibm.infrastructure
- **diagrams.ibm.infrastructure.Channels**
- **diagrams.ibm.infrastructure.CloudMessaging**
- **diagrams.ibm.infrastructure.Dashboard**
- **diagrams.ibm.infrastructure.Diagnostics**
- **diagrams.ibm.infrastructure.EdgeServices**
- **diagrams.ibm.infrastructure.EnterpriseMessaging**
- **diagrams.ibm.infrastructure.EventFeed**
- **diagrams.ibm.infrastructure.InfrastructureServices**
- **diagrams.ibm.infrastructure.InterserviceCommunication**
- **diagrams.ibm.infrastructure.LoadBalancingRouting**
- **diagrams.ibm.infrastructure.MicroservicesMesh**
- **diagrams.ibm.infrastructure.MobileBackend**
- **diagrams.ibm.infrastructure.MobileProviderNetwork**
- **diagrams.ibm.infrastructure.MonitoringLogging**
- **diagrams.ibm.infrastructure.Monitoring**
- **diagrams.ibm.infrastructure.PeerServices**
- **diagrams.ibm.infrastructure.ServiceDiscoveryConfiguration**
- **diagrams.ibm.infrastructure.TransformationConnectivity**
## ibm.management
- **diagrams.ibm.management.AlertNotification**
- **diagrams.ibm.management.ApiManagement**
- **diagrams.ibm.management.CloudManagement**
- **diagrams.ibm.management.ClusterManagement**
- **diagrams.ibm.management.ContentManagement**
- **diagrams.ibm.management.DataServices**
- **diagrams.ibm.management.DeviceManagement**
- **diagrams.ibm.management.InformationGovernance**
- **diagrams.ibm.management.ItServiceManagement**
- **diagrams.ibm.management.Management**
- **diagrams.ibm.management.MonitoringMetrics**
- **diagrams.ibm.management.ProcessManagement**
- **diagrams.ibm.management.ProviderCloudPortalService**
- **diagrams.ibm.management.PushNotifications**
- **diagrams.ibm.management.ServiceManagementTools**
## ibm.network
- **diagrams.ibm.network.Bridge**
- **diagrams.ibm.network.DirectLink**
- **diagrams.ibm.network.Enterprise**
- **diagrams.ibm.network.Firewall**
- **diagrams.ibm.network.FloatingIp**
- **diagrams.ibm.network.Gateway**
- **diagrams.ibm.network.InternetServices**
- **diagrams.ibm.network.LoadBalancerListener**
- **diagrams.ibm.network.LoadBalancerPool**
- **diagrams.ibm.network.LoadBalancer**
- **diagrams.ibm.network.LoadBalancingRouting**
- **diagrams.ibm.network.PublicGateway**
- **diagrams.ibm.network.Region**
- **diagrams.ibm.network.Router**
- **diagrams.ibm.network.Rules**
- **diagrams.ibm.network.Subnet**
- **diagrams.ibm.network.TransitGateway**
- **diagrams.ibm.network.Vpc**
- **diagrams.ibm.network.VpnConnection**
- **diagrams.ibm.network.VpnGateway**
- **diagrams.ibm.network.VpnPolicy**
## ibm.security
- **diagrams.ibm.security.ApiSecurity**
- **diagrams.ibm.security.BlockchainSecurityService**
- **diagrams.ibm.security.DataSecurity**
- **diagrams.ibm.security.Firewall**
- **diagrams.ibm.security.Gateway**
- **diagrams.ibm.security.GovernanceRiskCompliance**
- **diagrams.ibm.security.IdentityAccessManagement**
- **diagrams.ibm.security.IdentityProvider**
- **diagrams.ibm.security.InfrastructureSecurity**
- **diagrams.ibm.security.PhysicalSecurity**
- **diagrams.ibm.security.SecurityMonitoringIntelligence**
- **diagrams.ibm.security.SecurityServices**
- **diagrams.ibm.security.TrustendComputing**
- **diagrams.ibm.security.Vpn**
## ibm.social
- **diagrams.ibm.social.Communities**
- **diagrams.ibm.social.FileSync**
- **diagrams.ibm.social.LiveCollaboration**
- **diagrams.ibm.social.Messaging**
- **diagrams.ibm.social.Networking**
## ibm.storage
- **diagrams.ibm.storage.BlockStorage**
- **diagrams.ibm.storage.ObjectStorage**
## ibm.user
- **diagrams.ibm.user.Browser**
- **diagrams.ibm.user.Device**
- **diagrams.ibm.user.IntegratedDigitalExperiences**
- **diagrams.ibm.user.PhysicalEntity**
- **diagrams.ibm.user.Sensor**
- **diagrams.ibm.user.User**

@ -47,12 +47,12 @@ Node classes list of oci provider.
## oci.database
- **diagrams.oci.database.AutonomousWhite**
- **diagrams.oci.database.Autonomous**
- **diagrams.oci.database.AutonomousWhite**, **ADBWhite** (alias)
- **diagrams.oci.database.Autonomous**, **ADB** (alias)
- **diagrams.oci.database.BigdataServiceWhite**
- **diagrams.oci.database.BigdataService**
- **diagrams.oci.database.DatabaseServiceWhite**
- **diagrams.oci.database.DatabaseService**
- **diagrams.oci.database.DatabaseServiceWhite**, **DBServiceWhite** (alias)
- **diagrams.oci.database.DatabaseService**, **DBService** (alias)
- **diagrams.oci.database.DataflowApacheWhite**
- **diagrams.oci.database.DataflowApache**
- **diagrams.oci.database.DcatWhite**

@ -15,13 +15,14 @@ Node classes list of onprem provider.
- **diagrams.onprem.analytics.Beam**
- **diagrams.onprem.analytics.Databricks**
- **diagrams.onprem.analytics.Dbt**
- **diagrams.onprem.analytics.Dremio**
- **diagrams.onprem.analytics.Flink**
- **diagrams.onprem.analytics.Hadoop**
- **diagrams.onprem.analytics.Hive**
- **diagrams.onprem.analytics.Metabase**
- **diagrams.onprem.analytics.Norikra**
- **diagrams.onprem.analytics.Presto**
- **diagrams.onprem.analytics.Powerbi**, **PowerBI** (alias)
- **diagrams.onprem.analytics.Presto**
- **diagrams.onprem.analytics.Singer**
- **diagrams.onprem.analytics.Spark**
- **diagrams.onprem.analytics.Storm**
@ -75,6 +76,7 @@ Node classes list of onprem provider.
- **diagrams.onprem.container.Docker**
- **diagrams.onprem.container.Firecracker**
- **diagrams.onprem.container.Gvisor**
- **diagrams.onprem.container.K3S**
- **diagrams.onprem.container.Lxc**, **LXC** (alias)
- **diagrams.onprem.container.Rkt**, **RKT** (alias)
@ -123,6 +125,7 @@ Node classes list of onprem provider.
- **diagrams.onprem.iac.Ansible**
- **diagrams.onprem.iac.Atlantis**
- **diagrams.onprem.iac.Awx**
- **diagrams.onprem.iac.Puppet**
- **diagrams.onprem.iac.Terraform**
## onprem.identity
@ -152,9 +155,11 @@ Node classes list of onprem provider.
- **diagrams.onprem.monitoring.Cortex**
- **diagrams.onprem.monitoring.Datadog**
- **diagrams.onprem.monitoring.Dynatrace**
- **diagrams.onprem.monitoring.Grafana**
- **diagrams.onprem.monitoring.Humio**
- **diagrams.onprem.monitoring.Newrelic**
- **diagrams.onprem.monitoring.Nagios**
- **diagrams.onprem.monitoring.PrometheusOperator**
- **diagrams.onprem.monitoring.Prometheus**
- **diagrams.onprem.monitoring.Sentry**
@ -189,6 +194,7 @@ Node classes list of onprem provider.
- **diagrams.onprem.network.Powerdns**
- **diagrams.onprem.network.Tomcat**
- **diagrams.onprem.network.Traefik**
- **diagrams.onprem.network.Tyk**
- **diagrams.onprem.network.Vyos**, **VyOS** (alias)
- **diagrams.onprem.network.Wildfly**
- **diagrams.onprem.network.Zookeeper**
@ -229,8 +235,10 @@ Node classes list of onprem provider.
## onprem.vcs
- **diagrams.onprem.vcs.Git**
- **diagrams.onprem.vcs.Gitea**
- **diagrams.onprem.vcs.Github**
- **diagrams.onprem.vcs.Gitlab**
- **diagrams.onprem.vcs.Svn**
## onprem.workflow

@ -5,9 +5,6 @@ title: OpenStack
Node classes list of openstack provider.
## openstack.adjacentenablers
## openstack.apiproxies
- **diagrams.openstack.apiproxies.EC2API**
@ -51,9 +48,6 @@ Node classes list of openstack provider.
- **diagrams.openstack.frontend.Horizon**
## openstack.lifecyclemanagement
## openstack.monitoring
- **diagrams.openstack.monitoring.Monasca**
@ -73,9 +67,6 @@ Node classes list of openstack provider.
- **diagrams.openstack.nfv.Tacker**
## openstack.operations
## openstack.optimization
- **diagrams.openstack.optimization.Congress**

@ -46,6 +46,7 @@ Node classes list of programming provider.
- **diagrams.programming.framework.Rails**
- **diagrams.programming.framework.React**
- **diagrams.programming.framework.Spring**
- **diagrams.programming.framework.Starlette**
- **diagrams.programming.framework.Vue**
## programming.language
@ -61,6 +62,7 @@ Node classes list of programming provider.
- **diagrams.programming.language.Java**
- **diagrams.programming.language.Javascript**, **JavaScript** (alias)
- **diagrams.programming.language.Kotlin**
- **diagrams.programming.language.Latex**
- **diagrams.programming.language.Matlab**
- **diagrams.programming.language.Nodejs**, **NodeJS** (alias)
- **diagrams.programming.language.Php**, **PHP** (alias)
@ -71,3 +73,7 @@ Node classes list of programming provider.
- **diagrams.programming.language.Scala**
- **diagrams.programming.language.Swift**
- **diagrams.programming.language.Typescript**, **TypeScript** (alias)
## programming.runtime
- **diagrams.programming.runtime.Dapr**

173
poetry.lock generated

@ -8,17 +8,16 @@ python-versions = "*"
[[package]]
name = "astroid"
version = "2.3.3"
version = "2.5"
description = "An abstract syntax tree for Python with inference support."
category = "dev"
optional = false
python-versions = ">=3.5.*"
python-versions = ">=3.6"
[package.dependencies]
lazy-object-proxy = ">=1.4.0,<1.5.0"
six = ">=1.12,<2.0"
lazy-object-proxy = ">=1.4.0"
typed-ast = {version = ">=1.4.0,<1.5", markers = "implementation_name == \"cpython\" and python_version < \"3.8\""}
wrapt = ">=1.11.0,<1.12.0"
wrapt = ">=1.11,<1.13"
[[package]]
name = "atomicwrites"
@ -91,16 +90,16 @@ immutables = ">=0.9"
[[package]]
name = "graphviz"
version = "0.16"
version = "0.19.1"
description = "Simple Python interface for Graphviz"
category = "main"
optional = false
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*"
python-versions = ">=3.6"
[package.extras]
dev = ["tox (>=3)", "flake8", "pep8-naming", "wheel", "twine"]
docs = ["sphinx (>=1.8)", "sphinx-rtd-theme"]
test = ["mock (>=3)", "pytest (>=4)", "pytest-mock (>=2)", "pytest-cov"]
docs = ["sphinx (>=1.8)", "sphinx-autodoc-typehints", "sphinx-rtd-theme"]
test = ["pytest (>=6)", "pytest-mock (>=3)", "mock (>=4)", "pytest-cov", "coverage"]
[[package]]
name = "immutables"
@ -149,17 +148,17 @@ xdg_home = ["appdirs (>=1.4.0)"]
[[package]]
name = "jinja2"
version = "2.11.1"
version = "3.0.1"
description = "A very fast and expressive template engine."
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
python-versions = ">=3.6"
[package.dependencies]
MarkupSafe = ">=0.23"
MarkupSafe = ">=2.0"
[package.extras]
i18n = ["Babel (>=0.8)"]
i18n = ["Babel (>=2.7)"]
[[package]]
name = "lazy-object-proxy"
@ -171,11 +170,11 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]]
name = "markupsafe"
version = "1.1.1"
version = "2.0.1"
description = "Safely add untrusted strings to HTML/XML markup."
category = "main"
optional = false
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
python-versions = ">=3.6"
[[package]]
name = "mccabe"
@ -228,17 +227,21 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]]
name = "pylint"
version = "2.4.4"
version = "2.7.0"
description = "python code static checker"
category = "dev"
optional = false
python-versions = ">=3.5.*"
python-versions = "~=3.6"
[package.dependencies]
astroid = ">=2.3.0,<2.4"
astroid = "2.5.0"
colorama = {version = "*", markers = "sys_platform == \"win32\""}
isort = ">=4.2.5,<5"
isort = ">=4.2.5,<6"
mccabe = ">=0.6,<0.7"
toml = ">=0.7.1"
[package.extras]
docs = ["sphinx (>=3.2,<4.0)", "python-docs-theme"]
[[package]]
name = "pyparsing"
@ -286,14 +289,6 @@ category = "dev"
optional = false
python-versions = "*"
[[package]]
name = "six"
version = "1.14.0"
description = "Python 2 and 3 compatibility utilities"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
[[package]]
name = "toml"
version = "0.10.0"
@ -333,7 +328,7 @@ testing = ["jaraco.itertools", "func-timeout"]
[metadata]
lock-version = "1.1"
python-versions = "^3.6"
content-hash = "6cb154d248e0d13adbb5229f52d1c1ab9ce2ea9cfe54091cf34cd97ccb822653"
content-hash = "97ad2fbb808bd5bc77925987a729514d08127024752bc41557762f758f29b067"
[metadata.files]
appdirs = [
@ -341,8 +336,8 @@ appdirs = [
{file = "appdirs-1.4.3.tar.gz", hash = "sha256:9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92"},
]
astroid = [
{file = "astroid-2.3.3-py3-none-any.whl", hash = "sha256:840947ebfa8b58f318d42301cf8c0a20fd794a33b61cc4638e28e9e61ba32f42"},
{file = "astroid-2.3.3.tar.gz", hash = "sha256:71ea07f44df9568a75d0f354c49143a4575d90645e9fead6dfb52c26a85ed13a"},
{file = "astroid-2.5-py3-none-any.whl", hash = "sha256:87ae7f2398b8a0ae5638ddecf9987f081b756e0e9fc071aeebdca525671fc4dc"},
{file = "astroid-2.5.tar.gz", hash = "sha256:b31c92f545517dcc452f284bc9c044050862fbe6d93d2b3de4a215a6b384bf0d"},
]
atomicwrites = [
{file = "atomicwrites-1.3.0-py2.py3-none-any.whl", hash = "sha256:03472c30eb2c5d1ba9227e4c2ca66ab8287fbfbbda3888aa93dc2e28fc6811b4"},
@ -368,8 +363,8 @@ contextvars = [
{file = "contextvars-2.4.tar.gz", hash = "sha256:f38c908aaa59c14335eeea12abea5f443646216c4e29380d7bf34d2018e2c39e"},
]
graphviz = [
{file = "graphviz-0.16-py2.py3-none-any.whl", hash = "sha256:3cad5517c961090dfc679df6402a57de62d97703e2880a1a46147bb0dc1639eb"},
{file = "graphviz-0.16.zip", hash = "sha256:d2d25af1c199cad567ce4806f0449cb74eb30cf451fd7597251e1da099ac6e57"},
{file = "graphviz-0.19.1-py3-none-any.whl", hash = "sha256:f34088c08be2ec16279dfa9c3b4ff3d1453c5c67597a33e2819b000e18d4c546"},
{file = "graphviz-0.19.1.zip", hash = "sha256:09ed0cde452d015fe77c4845a210eb642f28d245f5bc250d4b97808cb8f49078"},
]
immutables = [
{file = "immutables-0.11-cp35-cp35m-macosx_10_13_x86_64.whl", hash = "sha256:bce27277a2fe91509cca69181971ab509c2ee862e8b37b09f26b64f90e8fe8fb"},
@ -402,8 +397,8 @@ isort = [
{file = "isort-4.3.21.tar.gz", hash = "sha256:54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1"},
]
jinja2 = [
{file = "Jinja2-2.11.1-py2.py3-none-any.whl", hash = "sha256:b0eaf100007721b5c16c1fc1eecb87409464edc10469ddc9a22a27a99123be49"},
{file = "Jinja2-2.11.1.tar.gz", hash = "sha256:93187ffbc7808079673ef52771baa950426fd664d3aad1d0fa3e95644360e250"},
{file = "Jinja2-3.0.1-py3-none-any.whl", hash = "sha256:1f06f2da51e7b56b8f238affdd6b4e2c61e39598a378cc49345bc1bd42a978a4"},
{file = "Jinja2-3.0.1.tar.gz", hash = "sha256:703f484b47a6af502e743c9122595cc812b0271f661722403114f71a79d0f5a4"},
]
lazy-object-proxy = [
{file = "lazy-object-proxy-1.4.3.tar.gz", hash = "sha256:f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0"},
@ -429,39 +424,75 @@ lazy-object-proxy = [
{file = "lazy_object_proxy-1.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:59f79fef100b09564bc2df42ea2d8d21a64fdcda64979c0fa3db7bdaabaf6239"},
]
markupsafe = [
{file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"},
{file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"},
{file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183"},
{file = "MarkupSafe-1.1.1-cp27-cp27m-win32.whl", hash = "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b"},
{file = "MarkupSafe-1.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e"},
{file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f"},
{file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-win32.whl", hash = "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-win_amd64.whl", hash = "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"},
{file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"},
{file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"},
{file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"},
{file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"},
{file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"},
{file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38"},
{file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"},
{file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"},
{file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"},
{file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b"},
{file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a"},
{file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a"},
{file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"},
{file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"},
{file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"},
{file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066"},
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35"},
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b"},
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298"},
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75"},
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb"},
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"},
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"},
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"},
{file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f"},
{file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194"},
{file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee"},
{file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"},
{file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"},
{file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"},
{file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7"},
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8"},
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5"},
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135"},
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902"},
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509"},
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"},
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"},
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"},
{file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047"},
{file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e"},
{file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1"},
{file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"},
{file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"},
{file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"},
]
mccabe = [
{file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"},
@ -484,8 +515,8 @@ py = [
{file = "py-1.10.0.tar.gz", hash = "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3"},
]
pylint = [
{file = "pylint-2.4.4-py3-none-any.whl", hash = "sha256:886e6afc935ea2590b462664b161ca9a5e40168ea99e5300935f6591ad467df4"},
{file = "pylint-2.4.4.tar.gz", hash = "sha256:3db5468ad013380e987410a8d6956226963aed94ecb5f9d3a28acca6d9ac36cd"},
{file = "pylint-2.7.0-py3-none-any.whl", hash = "sha256:3ea3926700db399765db1faf53860f11e4e981a090646e9eacd01ca78e020579"},
{file = "pylint-2.7.0.tar.gz", hash = "sha256:2e0c6749d809985e4f181c336a8f89b2b797340d8049160bf95f35a3f0ecf6fc"},
]
pyparsing = [
{file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"},
@ -523,10 +554,6 @@ rope = [
{file = "rope-0.14.0-py3-none-any.whl", hash = "sha256:f0dcf719b63200d492b85535ebe5ea9b29e0d0b8aebeb87fe03fc1a65924fdaf"},
{file = "rope-0.14.0.tar.gz", hash = "sha256:c5c5a6a87f7b1a2095fb311135e2a3d1f194f5ecb96900fdd0a9100881f48aaf"},
]
six = [
{file = "six-1.14.0-py2.py3-none-any.whl", hash = "sha256:8f3cd2e254d8f793e7f3d6d9df77b92252b52637291d0f0da013c76ea2724b6c"},
{file = "six-1.14.0.tar.gz", hash = "sha256:236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a"},
]
toml = [
{file = "toml-0.10.0-py2.7.egg", hash = "sha256:f1db651f9657708513243e61e6cc67d101a39bad662eaa9b5546f789338e07a3"},
{file = "toml-0.10.0-py2.py3-none-any.whl", hash = "sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e"},

@ -1,6 +1,6 @@
[tool.poetry]
name = "diagrams"
version = "0.18.0"
version = "0.21.0"
description = "Diagram as Code"
license = "MIT"
authors = ["mingrammer <mingrammer@gmail.com>"]
@ -11,13 +11,13 @@ include = ["resources/**/*"]
[tool.poetry.dependencies]
python = "^3.6"
graphviz = ">=0.13.2,<0.17.0"
jinja2 = "^2.10"
graphviz = ">=0.13.2,<0.20.0"
jinja2 = ">=2.10,<4.0"
contextvars = { version = "^2.4", python = "~3.6" }
[tool.poetry.dev-dependencies]
pytest = "^6.2"
pylint = "^2.4"
pylint = "^2.7"
black = {version = "^19.0", allow-prereleases = true}
rope = "^0.14.0"
isort = "^4.3"

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save